Lines Matching refs:zhp
249 process_user_props(zfs_handle_t *zhp, nvlist_t *props) in process_user_props() argument
251 libzfs_handle_t *hdl = zhp->zfs_hdl; in process_user_props()
278 zpool_add_handle(zfs_handle_t *zhp, const char *pool_name) in zpool_add_handle() argument
280 libzfs_handle_t *hdl = zhp->zfs_hdl; in zpool_add_handle()
292 zpool_find_handle(zfs_handle_t *zhp, const char *pool_name, int len) in zpool_find_handle() argument
294 libzfs_handle_t *hdl = zhp->zfs_hdl; in zpool_find_handle()
309 zpool_handle(zfs_handle_t *zhp) in zpool_handle() argument
315 len = strcspn(zhp->zfs_name, "/@#") + 1; in zpool_handle()
316 pool_name = zfs_alloc(zhp->zfs_hdl, len); in zpool_handle()
317 (void) strlcpy(pool_name, zhp->zfs_name, len); in zpool_handle()
319 zph = zpool_find_handle(zhp, pool_name, len); in zpool_handle()
321 zph = zpool_add_handle(zhp, pool_name); in zpool_handle()
344 get_stats_ioctl(zfs_handle_t *zhp, zfs_cmd_t *zc) in get_stats_ioctl() argument
346 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_stats_ioctl()
348 (void) strlcpy(zc->zc_name, zhp->zfs_name, sizeof (zc->zc_name)); in get_stats_ioctl()
366 get_recvd_props_ioctl(zfs_handle_t *zhp) in get_recvd_props_ioctl() argument
368 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_recvd_props_ioctl()
376 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in get_recvd_props_ioctl()
389 err = zcmd_read_dst_nvlist(zhp->zfs_hdl, &zc, &recvdprops); in get_recvd_props_ioctl()
394 nvlist_free(zhp->zfs_recvd_props); in get_recvd_props_ioctl()
395 zhp->zfs_recvd_props = recvdprops; in get_recvd_props_ioctl()
401 put_stats_zhdl(zfs_handle_t *zhp, zfs_cmd_t *zc) in put_stats_zhdl() argument
405 zhp->zfs_dmustats = zc->zc_objset_stats; /* structure assignment */ in put_stats_zhdl()
407 if (zcmd_read_dst_nvlist(zhp->zfs_hdl, zc, &allprops) != 0) { in put_stats_zhdl()
415 if ((userprops = process_user_props(zhp, allprops)) == NULL) { in put_stats_zhdl()
420 nvlist_free(zhp->zfs_props); in put_stats_zhdl()
421 nvlist_free(zhp->zfs_user_props); in put_stats_zhdl()
423 zhp->zfs_props = allprops; in put_stats_zhdl()
424 zhp->zfs_user_props = userprops; in put_stats_zhdl()
430 get_stats(zfs_handle_t *zhp) in get_stats() argument
435 if (zcmd_alloc_dst_nvlist(zhp->zfs_hdl, &zc, 0) != 0) in get_stats()
437 if (get_stats_ioctl(zhp, &zc) != 0) in get_stats()
439 else if (put_stats_zhdl(zhp, &zc) != 0) in get_stats()
449 zfs_refresh_properties(zfs_handle_t *zhp) in zfs_refresh_properties() argument
451 (void) get_stats(zhp); in zfs_refresh_properties()
459 make_dataset_handle_common(zfs_handle_t *zhp, zfs_cmd_t *zc) in make_dataset_handle_common() argument
461 if (put_stats_zhdl(zhp, zc) != 0) in make_dataset_handle_common()
468 if (zhp->zfs_dmustats.dds_type == DMU_OST_ZVOL) in make_dataset_handle_common()
469 zhp->zfs_head_type = ZFS_TYPE_VOLUME; in make_dataset_handle_common()
470 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZFS) in make_dataset_handle_common()
471 zhp->zfs_head_type = ZFS_TYPE_FILESYSTEM; in make_dataset_handle_common()
475 if (zhp->zfs_dmustats.dds_is_snapshot) in make_dataset_handle_common()
476 zhp->zfs_type = ZFS_TYPE_SNAPSHOT; in make_dataset_handle_common()
477 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZVOL) in make_dataset_handle_common()
478 zhp->zfs_type = ZFS_TYPE_VOLUME; in make_dataset_handle_common()
479 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZFS) in make_dataset_handle_common()
480 zhp->zfs_type = ZFS_TYPE_FILESYSTEM; in make_dataset_handle_common()
484 if ((zhp->zpool_hdl = zpool_handle(zhp)) == NULL) in make_dataset_handle_common()
495 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_dataset_handle() local
497 if (zhp == NULL) in make_dataset_handle()
500 zhp->zfs_hdl = hdl; in make_dataset_handle()
501 (void) strlcpy(zhp->zfs_name, path, sizeof (zhp->zfs_name)); in make_dataset_handle()
503 free(zhp); in make_dataset_handle()
506 if (get_stats_ioctl(zhp, &zc) == -1) { in make_dataset_handle()
508 free(zhp); in make_dataset_handle()
511 if (make_dataset_handle_common(zhp, &zc) == -1) { in make_dataset_handle()
512 free(zhp); in make_dataset_handle()
513 zhp = NULL; in make_dataset_handle()
516 return (zhp); in make_dataset_handle()
522 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_dataset_handle_zc() local
524 if (zhp == NULL) in make_dataset_handle_zc()
527 zhp->zfs_hdl = hdl; in make_dataset_handle_zc()
528 (void) strlcpy(zhp->zfs_name, zc->zc_name, sizeof (zhp->zfs_name)); in make_dataset_handle_zc()
529 if (make_dataset_handle_common(zhp, zc) == -1) { in make_dataset_handle_zc()
530 free(zhp); in make_dataset_handle_zc()
533 return (zhp); in make_dataset_handle_zc()
539 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in zfs_handle_dup() local
541 if (zhp == NULL) in zfs_handle_dup()
544 zhp->zfs_hdl = zhp_orig->zfs_hdl; in zfs_handle_dup()
545 zhp->zpool_hdl = zhp_orig->zpool_hdl; in zfs_handle_dup()
546 (void) strlcpy(zhp->zfs_name, zhp_orig->zfs_name, in zfs_handle_dup()
547 sizeof (zhp->zfs_name)); in zfs_handle_dup()
548 zhp->zfs_type = zhp_orig->zfs_type; in zfs_handle_dup()
549 zhp->zfs_head_type = zhp_orig->zfs_head_type; in zfs_handle_dup()
550 zhp->zfs_dmustats = zhp_orig->zfs_dmustats; in zfs_handle_dup()
552 if (nvlist_dup(zhp_orig->zfs_props, &zhp->zfs_props, 0) != 0) { in zfs_handle_dup()
553 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
554 zfs_close(zhp); in zfs_handle_dup()
560 &zhp->zfs_user_props, 0) != 0) { in zfs_handle_dup()
561 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
562 zfs_close(zhp); in zfs_handle_dup()
568 &zhp->zfs_recvd_props, 0)) { in zfs_handle_dup()
569 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
570 zfs_close(zhp); in zfs_handle_dup()
574 zhp->zfs_mntcheck = zhp_orig->zfs_mntcheck; in zfs_handle_dup()
576 zhp->zfs_mntopts = zfs_strdup(zhp_orig->zfs_hdl, in zfs_handle_dup()
579 zhp->zfs_props_table = zhp_orig->zfs_props_table; in zfs_handle_dup()
580 return (zhp); in zfs_handle_dup()
619 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_bookmark_handle() local
621 if (zhp == NULL) in make_bookmark_handle()
625 zhp->zfs_hdl = parent->zfs_hdl; in make_bookmark_handle()
626 (void) strlcpy(zhp->zfs_name, path, sizeof (zhp->zfs_name)); in make_bookmark_handle()
629 if (nvlist_dup(bmark_props, &zhp->zfs_props, 0) != 0) { in make_bookmark_handle()
630 free(zhp); in make_bookmark_handle()
635 zhp->zfs_head_type = parent->zfs_head_type; in make_bookmark_handle()
636 zhp->zfs_type = ZFS_TYPE_BOOKMARK; in make_bookmark_handle()
638 if ((zhp->zpool_hdl = zpool_handle(zhp)) == NULL) { in make_bookmark_handle()
639 nvlist_free(zhp->zfs_props); in make_bookmark_handle()
640 free(zhp); in make_bookmark_handle()
644 return (zhp); in make_bookmark_handle()
649 zfs_handle_t *zhp; member
653 zfs_open_bookmarks_cb(zfs_handle_t *zhp, void *data) in zfs_open_bookmarks_cb() argument
660 if (strcmp(dp->path, zfs_get_name(zhp)) == 0) { in zfs_open_bookmarks_cb()
664 dp->zhp = zhp; in zfs_open_bookmarks_cb()
671 zfs_close(zhp); in zfs_open_bookmarks_cb()
683 zfs_handle_t *zhp; in zfs_open() local
708 if ((zhp = make_dataset_handle(hdl, path)) == NULL) { in zfs_open()
739 &cb_data) == 0) && (cb_data.zhp == NULL)) { in zfs_open()
744 if (cb_data.zhp == NULL) { in zfs_open()
749 zhp = cb_data.zhp; in zfs_open()
757 if (!(types & zhp->zfs_type)) { in zfs_open()
759 zfs_close(zhp); in zfs_open()
763 return (zhp); in zfs_open()
770 zfs_close(zfs_handle_t *zhp) in zfs_close() argument
772 if (zhp->zfs_mntopts) in zfs_close()
773 free(zhp->zfs_mntopts); in zfs_close()
774 nvlist_free(zhp->zfs_props); in zfs_close()
775 nvlist_free(zhp->zfs_user_props); in zfs_close()
776 nvlist_free(zhp->zfs_recvd_props); in zfs_close()
777 free(zhp); in zfs_close()
916 zfs_spa_version(zfs_handle_t *zhp, int *spa_version) in zfs_spa_version() argument
918 zpool_handle_t *zpool_handle = zhp->zpool_hdl; in zfs_spa_version()
932 zfs_which_resv_prop(zfs_handle_t *zhp, zfs_prop_t *resv_prop) in zfs_which_resv_prop() argument
936 if (zfs_spa_version(zhp, &spa_version) < 0) in zfs_which_resv_prop()
954 uint64_t zoned, zfs_handle_t *zhp, zpool_handle_t *zpool_hdl, in zfs_valid_proplist() argument
1112 (!zfs_prop_setonce(prop) || zhp != NULL)) { in zfs_valid_proplist()
1132 if (zhp == NULL) in zfs_valid_proplist()
1134 version = zfs_prop_get_int(zhp, ZFS_PROP_VERSION); in zfs_valid_proplist()
1381 if (type == ZFS_TYPE_VOLUME && zhp != NULL) { in zfs_valid_proplist()
1382 uint64_t volsize = zfs_prop_get_int(zhp, in zfs_valid_proplist()
1384 uint64_t blocksize = zfs_prop_get_int(zhp, in zfs_valid_proplist()
1455 zfs_add_synthetic_resv(zfs_handle_t *zhp, nvlist_t *nvl) in zfs_add_synthetic_resv() argument
1468 old_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_add_synthetic_resv()
1469 if (zfs_which_resv_prop(zhp, &resv_prop) < 0) in zfs_add_synthetic_resv()
1471 old_reservation = zfs_prop_get_int(zhp, resv_prop); in zfs_add_synthetic_resv()
1475 zfs_prop_get_int(zhp, ZFS_PROP_VOLBLOCKSIZE)); in zfs_add_synthetic_resv()
1493 (void) no_memory(zhp->zfs_hdl); in zfs_add_synthetic_resv()
1600 zfs_prop_set(zfs_handle_t *zhp, const char *propname, const char *propval) in zfs_prop_set() argument
1604 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_set()
1609 zhp->zfs_name); in zfs_prop_set()
1617 ret = zfs_prop_set_list(zhp, nvl); in zfs_prop_set()
1631 zfs_prop_set_list(zfs_handle_t *zhp, nvlist_t *props) in zfs_prop_set_list() argument
1638 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_set_list()
1645 zhp->zfs_name); in zfs_prop_set_list()
1647 if ((nvl = zfs_valid_proplist(hdl, zhp->zfs_type, props, in zfs_prop_set_list()
1648 zfs_prop_get_int(zhp, ZFS_PROP_ZONED), zhp, zhp->zpool_hdl, in zfs_prop_set_list()
1660 (added_resv = zfs_add_synthetic_resv(zhp, nvl)) == -1) { in zfs_prop_set_list()
1691 cls[cl_idx] = changelist_gather(zhp, prop, 0, 0); in zfs_prop_set_list()
1716 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_set_list()
1739 uint64_t old_volsize = zfs_prop_get_int(zhp, in zfs_prop_set_list()
1769 (void) get_stats(zhp); in zfs_prop_set_list()
1790 zfs_prop_inherit(zfs_handle_t *zhp, const char *propname, boolean_t received) in zfs_prop_inherit() argument
1795 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_inherit()
1800 "cannot inherit %s for '%s'"), propname, zhp->zfs_name); in zfs_prop_inherit()
1814 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_inherit()
1817 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_INHERIT_PROP, &zc) != 0) in zfs_prop_inherit()
1835 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type)) in zfs_prop_inherit()
1842 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_inherit()
1846 zfs_prop_get_int(zhp, ZFS_PROP_ZONED)) { in zfs_prop_inherit()
1855 if ((cl = changelist_gather(zhp, prop, 0, 0)) == NULL) in zfs_prop_inherit()
1869 if ((ret = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_INHERIT_PROP, &zc)) != 0) { in zfs_prop_inherit()
1879 (void) get_stats(zhp); in zfs_prop_inherit()
1892 getprop_uint64(zfs_handle_t *zhp, zfs_prop_t prop, char **source) in getprop_uint64() argument
1898 if (nvlist_lookup_nvlist(zhp->zfs_props, in getprop_uint64()
1903 verify(!zhp->zfs_props_table || in getprop_uint64()
1904 zhp->zfs_props_table[prop] == B_TRUE); in getprop_uint64()
1913 getprop_string(zfs_handle_t *zhp, zfs_prop_t prop, char **source) in getprop_string() argument
1919 if (nvlist_lookup_nvlist(zhp->zfs_props, in getprop_string()
1924 verify(!zhp->zfs_props_table || in getprop_string()
1925 zhp->zfs_props_table[prop] == B_TRUE); in getprop_string()
1934 zfs_is_recvd_props_mode(zfs_handle_t *zhp) in zfs_is_recvd_props_mode() argument
1936 return (zhp->zfs_props == zhp->zfs_recvd_props); in zfs_is_recvd_props_mode()
1940 zfs_set_recvd_props_mode(zfs_handle_t *zhp, uint64_t *cookie) in zfs_set_recvd_props_mode() argument
1942 *cookie = (uint64_t)(uintptr_t)zhp->zfs_props; in zfs_set_recvd_props_mode()
1943 zhp->zfs_props = zhp->zfs_recvd_props; in zfs_set_recvd_props_mode()
1947 zfs_unset_recvd_props_mode(zfs_handle_t *zhp, uint64_t *cookie) in zfs_unset_recvd_props_mode() argument
1949 zhp->zfs_props = (nvlist_t *)(uintptr_t)*cookie; in zfs_unset_recvd_props_mode()
1963 get_numeric_property(zfs_handle_t *zhp, zfs_prop_t prop, zprop_source_t *src, in get_numeric_property() argument
1971 boolean_t received = zfs_is_recvd_props_mode(zhp); in get_numeric_property()
2022 if (!zhp->zfs_mntcheck && in get_numeric_property()
2024 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_numeric_property()
2027 if (libzfs_mnttab_find(hdl, zhp->zfs_name, &entry) == 0) { in get_numeric_property()
2028 zhp->zfs_mntopts = zfs_strdup(hdl, in get_numeric_property()
2030 if (zhp->zfs_mntopts == NULL) in get_numeric_property()
2034 zhp->zfs_mntcheck = B_TRUE; in get_numeric_property()
2037 if (zhp->zfs_mntopts == NULL) in get_numeric_property()
2040 mnt.mnt_mntopts = zhp->zfs_mntopts; in get_numeric_property()
2051 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2077 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2081 *source = zhp->zfs_name; in get_numeric_property()
2086 *val = (zhp->zfs_mntopts != NULL); in get_numeric_property()
2090 *val = zhp->zfs_dmustats.dds_num_clones; in get_numeric_property()
2097 if (!zfs_prop_valid_for_type(prop, zhp->zfs_head_type) || in get_numeric_property()
2098 zcmd_alloc_dst_nvlist(zhp->zfs_hdl, &zc, 0) != 0) in get_numeric_property()
2100 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in get_numeric_property()
2101 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_OBJSET_ZPLPROPS, &zc)) { in get_numeric_property()
2105 if (zcmd_read_dst_nvlist(zhp->zfs_hdl, &zc, &zplprops) != 0 || in get_numeric_property()
2116 *val = zhp->zfs_dmustats.dds_inconsistent; in get_numeric_property()
2123 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2137 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in get_numeric_property()
2139 return (zfs_error(zhp->zfs_hdl, EZFS_BADPROP, in get_numeric_property()
2151 get_source(zfs_handle_t *zhp, zprop_source_t *srctype, char *source, in get_source() argument
2164 if (strcmp(source, zhp->zfs_name) == 0) { in get_source()
2175 zfs_prop_get_recvd(zfs_handle_t *zhp, const char *propname, char *propbuf, in zfs_prop_get_recvd() argument
2181 if (zhp->zfs_recvd_props == NULL) in zfs_prop_get_recvd()
2182 if (get_recvd_props_ioctl(zhp) != 0) in zfs_prop_get_recvd()
2189 if (!nvlist_exists(zhp->zfs_recvd_props, propname)) in zfs_prop_get_recvd()
2191 zfs_set_recvd_props_mode(zhp, &cookie); in zfs_prop_get_recvd()
2192 err = zfs_prop_get(zhp, prop, propbuf, proplen, in zfs_prop_get_recvd()
2194 zfs_unset_recvd_props_mode(zhp, &cookie); in zfs_prop_get_recvd()
2198 if (nvlist_lookup_nvlist(zhp->zfs_recvd_props, in zfs_prop_get_recvd()
2210 get_clones_string(zfs_handle_t *zhp, char *propbuf, size_t proplen) in get_clones_string() argument
2215 value = zfs_get_clones_nvl(zhp); in get_clones_string()
2238 get_clones_cb(zfs_handle_t *zhp, void *arg) in get_clones_cb() argument
2243 zfs_close(zhp); in get_clones_cb()
2247 if (zfs_prop_get(zhp, ZFS_PROP_ORIGIN, gca->buf, sizeof (gca->buf), in get_clones_cb()
2251 fnvlist_add_boolean(gca->value, zfs_get_name(zhp)); in get_clones_cb()
2256 (void) zfs_iter_children(zhp, get_clones_cb, gca); in get_clones_cb()
2257 zfs_close(zhp); in get_clones_cb()
2262 zfs_get_clones_nvl(zfs_handle_t *zhp) in zfs_get_clones_nvl() argument
2266 if (nvlist_lookup_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2274 if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT) in zfs_get_clones_nvl()
2283 gca.numclones = zfs_prop_get_int(zhp, ZFS_PROP_NUMCLONES); in zfs_get_clones_nvl()
2285 gca.origin = zhp->zfs_name; in zfs_get_clones_nvl()
2293 (void) strlcpy(pool, zhp->zfs_name, sizeof (pool)); in zfs_get_clones_nvl()
2295 root = zfs_open(zhp->zfs_hdl, pool, in zfs_get_clones_nvl()
2303 nvlist_add_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2311 verify(0 == nvlist_lookup_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2328 zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen, in zfs_prop_get() argument
2335 boolean_t received = zfs_is_recvd_props_mode(zhp); in zfs_prop_get()
2340 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type)) in zfs_prop_get()
2356 val = getprop_uint64(zhp, prop, &source); in zfs_prop_get()
2380 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2397 relpath = zhp->zfs_name + strlen(source); in zfs_prop_get()
2402 if ((zpool_get_prop(zhp->zpool_hdl, in zfs_prop_get()
2438 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2445 if (get_clones_string(zhp, propbuf, proplen) != 0) in zfs_prop_get()
2454 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2482 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2503 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2511 switch (zhp->zfs_type) { in zfs_prop_get()
2537 if (get_numeric_property(zhp, ZFS_PROP_MOUNTED, in zfs_prop_get()
2552 (void) strlcpy(propbuf, zhp->zfs_name, proplen); in zfs_prop_get()
2561 getprop_string(zhp, prop, &source), proplen); in zfs_prop_get()
2599 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2607 if (get_numeric_property(zhp, prop, src, in zfs_prop_get()
2618 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2625 if (get_numeric_property(zhp, prop, src, in zfs_prop_get()
2638 get_source(zhp, src, source, statbuf, statlen); in zfs_prop_get()
2649 zfs_prop_get_int(zfs_handle_t *zhp, zfs_prop_t prop) in zfs_prop_get_int() argument
2654 (void) get_numeric_property(zhp, prop, NULL, &source, &val); in zfs_prop_get_int()
2660 zfs_prop_set_int(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t val) in zfs_prop_set_int() argument
2665 return (zfs_prop_set(zhp, zfs_prop_to_name(prop), buf)); in zfs_prop_set_int()
2672 zfs_prop_get_numeric(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t *value, in zfs_prop_get_numeric() argument
2680 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type)) { in zfs_prop_get_numeric()
2681 return (zfs_error_fmt(zhp->zfs_hdl, EZFS_PROPTYPE, in zfs_prop_get_numeric()
2689 if (get_numeric_property(zhp, prop, src, &source, value) != 0) in zfs_prop_get_numeric()
2692 get_source(zhp, src, source, statbuf, statlen); in zfs_prop_get_numeric()
2869 zfs_prop_get_userquota_common(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota_common() argument
2875 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_get_userquota_common()
2878 zfs_prop_get_int(zhp, ZFS_PROP_ZONED), in zfs_prop_get_userquota_common()
2884 err = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_USERSPACE_ONE, &zc); in zfs_prop_get_userquota_common()
2893 zfs_prop_get_userquota_int(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota_int() argument
2898 return (zfs_prop_get_userquota_common(zhp, propname, propvalue, in zfs_prop_get_userquota_int()
2903 zfs_prop_get_userquota(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota() argument
2910 err = zfs_prop_get_userquota_common(zhp, propname, &propvalue, in zfs_prop_get_userquota()
2928 zfs_prop_get_written_int(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_written_int() argument
2935 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_get_written_int()
2944 (void) strlcpy(zc.zc_value, zhp->zfs_name, in zfs_prop_get_written_int()
2953 err = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_SPACE_WRITTEN, &zc); in zfs_prop_get_written_int()
2962 zfs_prop_get_written(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_written() argument
2968 err = zfs_prop_get_written_int(zhp, propname, &propvalue); in zfs_prop_get_written()
2985 zfs_get_name(const zfs_handle_t *zhp) in zfs_get_name() argument
2987 return (zhp->zfs_name); in zfs_get_name()
2994 zfs_get_pool_name(const zfs_handle_t *zhp) in zfs_get_pool_name() argument
2996 return (zhp->zpool_hdl->zpool_name); in zfs_get_pool_name()
3003 zfs_get_type(const zfs_handle_t *zhp) in zfs_get_type() argument
3005 return (zhp->zfs_type); in zfs_get_type()
3063 zfs_handle_t *zhp; in check_parents() local
3090 while ((zhp = make_dataset_handle(hdl, parent)) == NULL) { in check_parents()
3108 is_zoned = zfs_prop_get_int(zhp, ZFS_PROP_ZONED); in check_parents()
3115 zfs_close(zhp); in check_parents()
3120 if (zfs_get_type(zhp) != ZFS_TYPE_FILESYSTEM) { in check_parents()
3124 zfs_close(zhp); in check_parents()
3128 zfs_close(zhp); in check_parents()
3140 zfs_handle_t *zhp; in zfs_dataset_exists() local
3148 if ((zhp = make_dataset_handle(hdl, path)) != NULL) { in zfs_dataset_exists()
3149 int ds_type = zhp->zfs_type; in zfs_dataset_exists()
3151 zfs_close(zhp); in zfs_dataset_exists()
3412 zfs_destroy(zfs_handle_t *zhp, boolean_t defer) in zfs_destroy() argument
3416 if (zhp->zfs_type == ZFS_TYPE_BOOKMARK) { in zfs_destroy()
3418 fnvlist_add_boolean(nv, zhp->zfs_name); in zfs_destroy()
3422 return (zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_destroy()
3424 zhp->zfs_name)); in zfs_destroy()
3429 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_destroy()
3431 if (ZFS_IS_VOLUME(zhp)) { in zfs_destroy()
3438 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_DESTROY, &zc) != 0 && in zfs_destroy()
3440 return (zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_destroy()
3442 zhp->zfs_name)); in zfs_destroy()
3445 remove_mountpoint(zhp); in zfs_destroy()
3456 zfs_check_snap_cb(zfs_handle_t *zhp, void *arg) in zfs_check_snap_cb() argument
3463 "%s@%s", zhp->zfs_name, dd->snapname); in zfs_check_snap_cb()
3468 rv = zfs_iter_filesystems(zhp, zfs_check_snap_cb, dd); in zfs_check_snap_cb()
3469 zfs_close(zhp); in zfs_check_snap_cb()
3477 zfs_destroy_snaps(zfs_handle_t *zhp, char *snapname, boolean_t defer) in zfs_destroy_snaps() argument
3484 (void) zfs_check_snap_cb(zfs_handle_dup(zhp), &dd); in zfs_destroy_snaps()
3487 ret = zfs_standard_error_fmt(zhp->zfs_hdl, ENOENT, in zfs_destroy_snaps()
3489 zhp->zfs_name, snapname); in zfs_destroy_snaps()
3491 ret = zfs_destroy_snaps_nvl(zhp->zfs_hdl, dd.nvl, defer); in zfs_destroy_snaps()
3545 zfs_clone(zfs_handle_t *zhp, const char *target, nvlist_t *props) in zfs_clone() argument
3550 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_clone()
3553 assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT); in zfs_clone()
3572 if (ZFS_IS_VOLUME(zhp)) { in zfs_clone()
3578 zhp, zhp->zpool_hdl, errbuf)) == NULL) in zfs_clone()
3582 ret = lzc_clone(target, zhp->zfs_name, props); in zfs_clone()
3598 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_clone()
3600 return (zfs_error(zhp->zfs_hdl, EZFS_NOENT, errbuf)); in zfs_clone()
3603 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_clone()
3605 return (zfs_error(zhp->zfs_hdl, EZFS_CROSSTARGET, in zfs_clone()
3609 return (zfs_standard_error(zhp->zfs_hdl, errno, in zfs_clone()
3621 zfs_promote(zfs_handle_t *zhp) in zfs_promote() argument
3623 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_promote()
3630 "cannot promote '%s'"), zhp->zfs_name); in zfs_promote()
3632 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_promote()
3638 (void) strlcpy(parent, zhp->zfs_dmustats.dds_origin, sizeof (parent)); in zfs_promote()
3645 (void) strlcpy(zc.zc_value, zhp->zfs_dmustats.dds_origin, in zfs_promote()
3647 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_promote()
3674 zfs_snapshot_cb(zfs_handle_t *zhp, void *arg) in zfs_snapshot_cb() argument
3680 if (zfs_prop_get_int(zhp, ZFS_PROP_INCONSISTENT) == 0) { in zfs_snapshot_cb()
3682 "%s@%s", zfs_get_name(zhp), sd->sd_snapname); in zfs_snapshot_cb()
3686 rv = zfs_iter_filesystems(zhp, zfs_snapshot_cb, sd); in zfs_snapshot_cb()
3688 zfs_close(zhp); in zfs_snapshot_cb()
3782 zfs_handle_t *zhp; in zfs_snapshot() local
3796 if ((zhp = zfs_open(hdl, fsname, ZFS_TYPE_FILESYSTEM | in zfs_snapshot()
3803 (void) zfs_snapshot_cb(zfs_handle_dup(zhp), &sd); in zfs_snapshot()
3810 zfs_close(zhp); in zfs_snapshot()
3828 rollback_destroy_dependent(zfs_handle_t *zhp, void *data) in rollback_destroy_dependent() argument
3834 clp = changelist_gather(zhp, ZFS_PROP_NAME, 0, in rollback_destroy_dependent()
3838 zfs_close(zhp); in rollback_destroy_dependent()
3841 if (zfs_destroy(zhp, B_FALSE) != 0) in rollback_destroy_dependent()
3844 changelist_remove(clp, zhp->zfs_name); in rollback_destroy_dependent()
3848 zfs_close(zhp); in rollback_destroy_dependent()
3853 rollback_destroy(zfs_handle_t *zhp, void *data) in rollback_destroy() argument
3857 if (zfs_prop_get_int(zhp, ZFS_PROP_CREATETXG) > cbp->cb_create) { in rollback_destroy()
3858 cbp->cb_error |= zfs_iter_dependents(zhp, B_FALSE, in rollback_destroy()
3861 cbp->cb_error |= zfs_destroy(zhp, B_FALSE); in rollback_destroy()
3864 zfs_close(zhp); in rollback_destroy()
3876 zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force) in zfs_rollback() argument
3884 assert(zhp->zfs_type == ZFS_TYPE_FILESYSTEM || in zfs_rollback()
3885 zhp->zfs_type == ZFS_TYPE_VOLUME); in zfs_rollback()
3893 (void) zfs_iter_snapshots(zhp, rollback_destroy, &cb); in zfs_rollback()
3894 (void) zfs_iter_bookmarks(zhp, rollback_destroy, &cb); in zfs_rollback()
3904 if (zhp->zfs_type == ZFS_TYPE_VOLUME) { in zfs_rollback()
3905 if (zfs_which_resv_prop(zhp, &resv_prop) < 0) in zfs_rollback()
3907 old_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_rollback()
3909 (old_volsize == zfs_prop_get_int(zhp, resv_prop)); in zfs_rollback()
3919 err = lzc_rollback(zhp->zfs_name, NULL, 0); in zfs_rollback()
3921 (void) zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_rollback()
3923 zhp->zfs_name); in zfs_rollback()
3933 if ((zhp->zfs_type == ZFS_TYPE_VOLUME) && in zfs_rollback()
3934 (zhp = make_dataset_handle(zhp->zfs_hdl, zhp->zfs_name))) { in zfs_rollback()
3936 new_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_rollback()
3938 err = zfs_prop_set_int(zhp, resv_prop, in zfs_rollback()
3941 zfs_close(zhp); in zfs_rollback()
3950 zfs_rename(zfs_handle_t *zhp, const char *target, boolean_t recursive, in zfs_rename() argument
3960 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_rename()
3964 if (strcmp(zhp->zfs_name, target) == 0) in zfs_rename()
3973 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_rename()
3980 (void) strlcpy(parent, zhp->zfs_name, in zfs_rename()
3994 if (strncmp(zhp->zfs_name, target, delim - target) in zfs_rename()
3995 != 0 || zhp->zfs_name[delim - target] != '@') { in zfs_rename()
4003 if (!zfs_validate_name(hdl, target, zhp->zfs_type, B_TRUE)) in zfs_rename()
4012 if (!zfs_validate_name(hdl, target, zhp->zfs_type, B_TRUE)) in zfs_rename()
4021 if (strncmp(zhp->zfs_name, target, delim - target) != 0 || in zfs_rename()
4022 zhp->zfs_name[delim - target] != '/') { in zfs_rename()
4029 if (is_descendant(zhp->zfs_name, target)) { in zfs_rename()
4038 dgettext(TEXT_DOMAIN, "cannot rename '%s'"), zhp->zfs_name); in zfs_rename()
4041 zfs_prop_get_int(zhp, ZFS_PROP_ZONED)) { in zfs_rename()
4048 parentname = zfs_strdup(zhp->zfs_hdl, zhp->zfs_name); in zfs_rename()
4055 zhrp = zfs_open(zhp->zfs_hdl, parentname, ZFS_TYPE_DATASET); in zfs_rename()
4060 } else if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT) { in zfs_rename()
4061 if ((cl = changelist_gather(zhp, ZFS_PROP_NAME, 0, in zfs_rename()
4077 if (ZFS_IS_VOLUME(zhp)) in zfs_rename()
4082 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_rename()
4087 if ((ret = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_RENAME, &zc)) != 0) { in zfs_rename()
4101 (void) zfs_standard_error(zhp->zfs_hdl, errno, errbuf); in zfs_rename()
4112 changelist_rename(cl, zfs_get_name(zhp), target); in zfs_rename()
4131 zfs_get_user_props(zfs_handle_t *zhp) in zfs_get_user_props() argument
4133 return (zhp->zfs_user_props); in zfs_get_user_props()
4137 zfs_get_recvd_props(zfs_handle_t *zhp) in zfs_get_recvd_props() argument
4139 if (zhp->zfs_recvd_props == NULL) in zfs_get_recvd_props()
4140 if (get_recvd_props_ioctl(zhp) != 0) in zfs_get_recvd_props()
4142 return (zhp->zfs_recvd_props); in zfs_get_recvd_props()
4159 zfs_expand_proplist(zfs_handle_t *zhp, zprop_list_t **plp, boolean_t received, in zfs_expand_proplist() argument
4162 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_expand_proplist()
4173 userprops = zfs_get_user_props(zhp); in zfs_expand_proplist()
4226 if (zfs_prop_get(zhp, entry->pl_prop, in zfs_expand_proplist()
4231 if (received && zfs_prop_get_recvd(zhp, in zfs_expand_proplist()
4244 if (received && zfs_prop_get_recvd(zhp, in zfs_expand_proplist()
4276 zfs_prune_proplist(zfs_handle_t *zhp, uint8_t *props) in zfs_prune_proplist() argument
4284 zhp->zfs_props_table = props; in zfs_prune_proplist()
4286 curr = nvlist_next_nvpair(zhp->zfs_props, NULL); in zfs_prune_proplist()
4290 nvpair_t *next = nvlist_next_nvpair(zhp->zfs_props, curr); in zfs_prune_proplist()
4300 (void) nvlist_remove(zhp->zfs_props, in zfs_prune_proplist()
4388 zfs_userspace(zfs_handle_t *zhp, zfs_userquota_prop_t type, in zfs_userspace() argument
4393 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_userspace()
4396 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_userspace()
4437 zfs_hold_one(zfs_handle_t *zhp, void *arg) in zfs_hold_one() argument
4444 "%s@%s", zhp->zfs_name, ha->snapname); in zfs_hold_one()
4450 rv = zfs_iter_filesystems(zhp, zfs_hold_one, ha); in zfs_hold_one()
4451 zfs_close(zhp); in zfs_hold_one()
4456 zfs_hold(zfs_handle_t *zhp, const char *snapname, const char *tag, in zfs_hold() argument
4466 (void) zfs_hold_one(zfs_handle_dup(zhp), &ha); in zfs_hold()
4476 zhp->zfs_name, snapname); in zfs_hold()
4477 (void) zfs_standard_error(zhp->zfs_hdl, ret, errbuf); in zfs_hold()
4481 ret = zfs_hold_nvl(zhp, cleanup_fd, ha.nvl); in zfs_hold()
4488 zfs_hold_nvl(zfs_handle_t *zhp, int cleanup_fd, nvlist_t *holds) in zfs_hold_nvl() argument
4492 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_hold_nvl()
4556 zfs_release_one(zfs_handle_t *zhp, void *arg) in zfs_release_one() argument
4564 "%s@%s", zhp->zfs_name, ha->snapname); in zfs_release_one()
4578 rv = zfs_iter_filesystems(zhp, zfs_release_one, ha); in zfs_release_one()
4579 zfs_close(zhp); in zfs_release_one()
4584 zfs_release(zfs_handle_t *zhp, const char *snapname, const char *tag, in zfs_release() argument
4591 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_release()
4599 (void) zfs_release_one(zfs_handle_dup(zhp), &ha); in zfs_release()
4607 zhp->zfs_name, snapname); in zfs_release()
4665 zfs_get_fsacl(zfs_handle_t *zhp, nvlist_t **nvl) in zfs_get_fsacl() argument
4668 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_get_fsacl()
4674 assert(zhp->zfs_type == ZFS_TYPE_VOLUME || in zfs_get_fsacl()
4675 zhp->zfs_type == ZFS_TYPE_FILESYSTEM); in zfs_get_fsacl()
4688 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_get_fsacl()
4732 zfs_set_fsacl(zfs_handle_t *zhp, boolean_t un, nvlist_t *nvl) in zfs_set_fsacl() argument
4735 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_set_fsacl()
4741 assert(zhp->zfs_type == ZFS_TYPE_VOLUME || in zfs_set_fsacl()
4742 zhp->zfs_type == ZFS_TYPE_FILESYSTEM); in zfs_set_fsacl()
4756 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_set_fsacl()
4786 zfs_get_holds(zfs_handle_t *zhp, nvlist_t **nvl) in zfs_get_holds() argument
4791 err = lzc_get_holds(zhp->zfs_name, nvl); in zfs_get_holds()
4794 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_get_holds()
4798 zhp->zfs_name); in zfs_get_holds()