Print this page
2882 implement libzfs_core
2883 changing "canmount" property to "on" should not always remount dataset
2900 "zfs snapshot" should be able to create multiple, arbitrary snapshots at once
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Chris Siden <christopher.siden@delphix.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Bill Pijewski <wdp@joyent.com>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>

*** 41,50 **** --- 41,51 ---- #include <sys/mnttab.h> #include <sys/mntent.h> #include <sys/types.h> #include <libzfs.h> + #include <libzfs_core.h> #include "libzfs_impl.h" #include "zfs_prop.h" #include "zfeature_common.h"
*** 628,637 **** --- 629,646 ---- return (NULL); } hdl->libzfs_sharetab = fopen("/etc/dfs/sharetab", "r"); + if (libzfs_core_init() != 0) { + (void) close(hdl->libzfs_fd); + (void) fclose(hdl->libzfs_mnttab); + (void) fclose(hdl->libzfs_sharetab); + free(hdl); + return (NULL); + } + zfs_prop_init(); zpool_prop_init(); zpool_feature_init(); libzfs_mnttab_init(hdl);
*** 645,660 **** if (hdl->libzfs_mnttab) (void) fclose(hdl->libzfs_mnttab); if (hdl->libzfs_sharetab) (void) fclose(hdl->libzfs_sharetab); zfs_uninit_libshare(hdl); - if (hdl->libzfs_log_str) - (void) free(hdl->libzfs_log_str); zpool_free_handles(hdl); libzfs_fru_clear(hdl, B_TRUE); namespace_clear(hdl); libzfs_mnttab_fini(hdl); free(hdl); } libzfs_handle_t * zpool_get_handle(zpool_handle_t *zhp) --- 654,668 ---- if (hdl->libzfs_mnttab) (void) fclose(hdl->libzfs_mnttab); if (hdl->libzfs_sharetab) (void) fclose(hdl->libzfs_sharetab); zfs_uninit_libshare(hdl); zpool_free_handles(hdl); libzfs_fru_clear(hdl, B_TRUE); namespace_clear(hdl); libzfs_mnttab_fini(hdl); + libzfs_core_fini(); free(hdl); } libzfs_handle_t * zpool_get_handle(zpool_handle_t *zhp)
*** 812,832 **** } int zfs_ioctl(libzfs_handle_t *hdl, int request, zfs_cmd_t *zc) { ! int error; ! ! zc->zc_history = (uint64_t)(uintptr_t)hdl->libzfs_log_str; ! error = ioctl(hdl->libzfs_fd, request, zc); ! if (hdl->libzfs_log_str) { ! free(hdl->libzfs_log_str); ! hdl->libzfs_log_str = NULL; ! } ! zc->zc_history = 0; ! ! return (error); } /* * ================================================================ * API shared by zfs and zpool property management --- 820,830 ---- } int zfs_ioctl(libzfs_handle_t *hdl, int request, zfs_cmd_t *zc) { ! return (ioctl(hdl->libzfs_fd, request, zc)); } /* * ================================================================ * API shared by zfs and zpool property management