Lines Matching refs:zhp

225 process_user_props(zfs_handle_t *zhp, nvlist_t *props)  in process_user_props()  argument
227 libzfs_handle_t *hdl = zhp->zfs_hdl; in process_user_props()
254 zpool_add_handle(zfs_handle_t *zhp, const char *pool_name) in zpool_add_handle() argument
256 libzfs_handle_t *hdl = zhp->zfs_hdl; in zpool_add_handle()
268 zpool_find_handle(zfs_handle_t *zhp, const char *pool_name, int len) in zpool_find_handle() argument
270 libzfs_handle_t *hdl = zhp->zfs_hdl; in zpool_find_handle()
285 zpool_handle(zfs_handle_t *zhp) in zpool_handle() argument
291 len = strcspn(zhp->zfs_name, "/@#") + 1; in zpool_handle()
292 pool_name = zfs_alloc(zhp->zfs_hdl, len); in zpool_handle()
293 (void) strlcpy(pool_name, zhp->zfs_name, len); in zpool_handle()
295 zph = zpool_find_handle(zhp, pool_name, len); in zpool_handle()
297 zph = zpool_add_handle(zhp, pool_name); in zpool_handle()
320 get_stats_ioctl(zfs_handle_t *zhp, zfs_cmd_t *zc) in get_stats_ioctl() argument
322 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_stats_ioctl()
324 (void) strlcpy(zc->zc_name, zhp->zfs_name, sizeof (zc->zc_name)); in get_stats_ioctl()
342 get_recvd_props_ioctl(zfs_handle_t *zhp) in get_recvd_props_ioctl() argument
344 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_recvd_props_ioctl()
352 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in get_recvd_props_ioctl()
365 err = zcmd_read_dst_nvlist(zhp->zfs_hdl, &zc, &recvdprops); in get_recvd_props_ioctl()
370 nvlist_free(zhp->zfs_recvd_props); in get_recvd_props_ioctl()
371 zhp->zfs_recvd_props = recvdprops; in get_recvd_props_ioctl()
377 put_stats_zhdl(zfs_handle_t *zhp, zfs_cmd_t *zc) in put_stats_zhdl() argument
381 zhp->zfs_dmustats = zc->zc_objset_stats; /* structure assignment */ in put_stats_zhdl()
383 if (zcmd_read_dst_nvlist(zhp->zfs_hdl, zc, &allprops) != 0) { in put_stats_zhdl()
391 if ((userprops = process_user_props(zhp, allprops)) == NULL) { in put_stats_zhdl()
396 nvlist_free(zhp->zfs_props); in put_stats_zhdl()
397 nvlist_free(zhp->zfs_user_props); in put_stats_zhdl()
399 zhp->zfs_props = allprops; in put_stats_zhdl()
400 zhp->zfs_user_props = userprops; in put_stats_zhdl()
406 get_stats(zfs_handle_t *zhp) in get_stats() argument
411 if (zcmd_alloc_dst_nvlist(zhp->zfs_hdl, &zc, 0) != 0) in get_stats()
413 if (get_stats_ioctl(zhp, &zc) != 0) in get_stats()
415 else if (put_stats_zhdl(zhp, &zc) != 0) in get_stats()
425 zfs_refresh_properties(zfs_handle_t *zhp) in zfs_refresh_properties() argument
427 (void) get_stats(zhp); in zfs_refresh_properties()
435 make_dataset_handle_common(zfs_handle_t *zhp, zfs_cmd_t *zc) in make_dataset_handle_common() argument
437 if (put_stats_zhdl(zhp, zc) != 0) in make_dataset_handle_common()
444 if (zhp->zfs_dmustats.dds_type == DMU_OST_ZVOL) in make_dataset_handle_common()
445 zhp->zfs_head_type = ZFS_TYPE_VOLUME; in make_dataset_handle_common()
446 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZFS) in make_dataset_handle_common()
447 zhp->zfs_head_type = ZFS_TYPE_FILESYSTEM; in make_dataset_handle_common()
448 else if (zhp->zfs_dmustats.dds_type == DMU_OST_OTHER) in make_dataset_handle_common()
453 if (zhp->zfs_dmustats.dds_is_snapshot) in make_dataset_handle_common()
454 zhp->zfs_type = ZFS_TYPE_SNAPSHOT; in make_dataset_handle_common()
455 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZVOL) in make_dataset_handle_common()
456 zhp->zfs_type = ZFS_TYPE_VOLUME; in make_dataset_handle_common()
457 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZFS) in make_dataset_handle_common()
458 zhp->zfs_type = ZFS_TYPE_FILESYSTEM; in make_dataset_handle_common()
462 if ((zhp->zpool_hdl = zpool_handle(zhp)) == NULL) in make_dataset_handle_common()
473 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_dataset_handle() local
475 if (zhp == NULL) in make_dataset_handle()
478 zhp->zfs_hdl = hdl; in make_dataset_handle()
479 (void) strlcpy(zhp->zfs_name, path, sizeof (zhp->zfs_name)); in make_dataset_handle()
481 free(zhp); in make_dataset_handle()
484 if (get_stats_ioctl(zhp, &zc) == -1) { in make_dataset_handle()
486 free(zhp); in make_dataset_handle()
489 if (make_dataset_handle_common(zhp, &zc) == -1) { in make_dataset_handle()
490 free(zhp); in make_dataset_handle()
491 zhp = NULL; in make_dataset_handle()
494 return (zhp); in make_dataset_handle()
500 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_dataset_handle_zc() local
502 if (zhp == NULL) in make_dataset_handle_zc()
505 zhp->zfs_hdl = hdl; in make_dataset_handle_zc()
506 (void) strlcpy(zhp->zfs_name, zc->zc_name, sizeof (zhp->zfs_name)); in make_dataset_handle_zc()
507 if (make_dataset_handle_common(zhp, zc) == -1) { in make_dataset_handle_zc()
508 free(zhp); in make_dataset_handle_zc()
511 return (zhp); in make_dataset_handle_zc()
517 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_dataset_simple_handle_zc() local
519 if (zhp == NULL) in make_dataset_simple_handle_zc()
522 zhp->zfs_hdl = pzhp->zfs_hdl; in make_dataset_simple_handle_zc()
523 (void) strlcpy(zhp->zfs_name, zc->zc_name, sizeof (zhp->zfs_name)); in make_dataset_simple_handle_zc()
524 zhp->zfs_head_type = pzhp->zfs_type; in make_dataset_simple_handle_zc()
525 zhp->zfs_type = ZFS_TYPE_SNAPSHOT; in make_dataset_simple_handle_zc()
526 zhp->zpool_hdl = zpool_handle(zhp); in make_dataset_simple_handle_zc()
527 return (zhp); in make_dataset_simple_handle_zc()
533 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in zfs_handle_dup() local
535 if (zhp == NULL) in zfs_handle_dup()
538 zhp->zfs_hdl = zhp_orig->zfs_hdl; in zfs_handle_dup()
539 zhp->zpool_hdl = zhp_orig->zpool_hdl; in zfs_handle_dup()
540 (void) strlcpy(zhp->zfs_name, zhp_orig->zfs_name, in zfs_handle_dup()
541 sizeof (zhp->zfs_name)); in zfs_handle_dup()
542 zhp->zfs_type = zhp_orig->zfs_type; in zfs_handle_dup()
543 zhp->zfs_head_type = zhp_orig->zfs_head_type; in zfs_handle_dup()
544 zhp->zfs_dmustats = zhp_orig->zfs_dmustats; in zfs_handle_dup()
546 if (nvlist_dup(zhp_orig->zfs_props, &zhp->zfs_props, 0) != 0) { in zfs_handle_dup()
547 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
548 zfs_close(zhp); in zfs_handle_dup()
554 &zhp->zfs_user_props, 0) != 0) { in zfs_handle_dup()
555 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
556 zfs_close(zhp); in zfs_handle_dup()
562 &zhp->zfs_recvd_props, 0)) { in zfs_handle_dup()
563 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
564 zfs_close(zhp); in zfs_handle_dup()
568 zhp->zfs_mntcheck = zhp_orig->zfs_mntcheck; in zfs_handle_dup()
570 zhp->zfs_mntopts = zfs_strdup(zhp_orig->zfs_hdl, in zfs_handle_dup()
573 zhp->zfs_props_table = zhp_orig->zfs_props_table; in zfs_handle_dup()
574 return (zhp); in zfs_handle_dup()
613 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_bookmark_handle() local
615 if (zhp == NULL) in make_bookmark_handle()
619 zhp->zfs_hdl = parent->zfs_hdl; in make_bookmark_handle()
620 (void) strlcpy(zhp->zfs_name, path, sizeof (zhp->zfs_name)); in make_bookmark_handle()
623 if (nvlist_dup(bmark_props, &zhp->zfs_props, 0) != 0) { in make_bookmark_handle()
624 free(zhp); in make_bookmark_handle()
629 zhp->zfs_head_type = parent->zfs_head_type; in make_bookmark_handle()
630 zhp->zfs_type = ZFS_TYPE_BOOKMARK; in make_bookmark_handle()
632 if ((zhp->zpool_hdl = zpool_handle(zhp)) == NULL) { in make_bookmark_handle()
633 nvlist_free(zhp->zfs_props); in make_bookmark_handle()
634 free(zhp); in make_bookmark_handle()
638 return (zhp); in make_bookmark_handle()
643 zfs_handle_t *zhp; member
647 zfs_open_bookmarks_cb(zfs_handle_t *zhp, void *data) in zfs_open_bookmarks_cb() argument
654 if (strcmp(dp->path, zfs_get_name(zhp)) == 0) { in zfs_open_bookmarks_cb()
658 dp->zhp = zhp; in zfs_open_bookmarks_cb()
665 zfs_close(zhp); in zfs_open_bookmarks_cb()
677 zfs_handle_t *zhp; in zfs_open() local
702 if ((zhp = make_dataset_handle(hdl, path)) == NULL) { in zfs_open()
733 &cb_data) == 0) && (cb_data.zhp == NULL)) { in zfs_open()
738 if (cb_data.zhp == NULL) { in zfs_open()
743 zhp = cb_data.zhp; in zfs_open()
751 if (!(types & zhp->zfs_type)) { in zfs_open()
753 zfs_close(zhp); in zfs_open()
757 return (zhp); in zfs_open()
764 zfs_close(zfs_handle_t *zhp) in zfs_close() argument
766 if (zhp->zfs_mntopts) in zfs_close()
767 free(zhp->zfs_mntopts); in zfs_close()
768 nvlist_free(zhp->zfs_props); in zfs_close()
769 nvlist_free(zhp->zfs_user_props); in zfs_close()
770 nvlist_free(zhp->zfs_recvd_props); in zfs_close()
771 free(zhp); in zfs_close()
922 zfs_spa_version(zfs_handle_t *zhp, int *spa_version) in zfs_spa_version() argument
924 zpool_handle_t *zpool_handle = zhp->zpool_hdl; in zfs_spa_version()
938 zfs_which_resv_prop(zfs_handle_t *zhp, zfs_prop_t *resv_prop) in zfs_which_resv_prop() argument
942 if (zfs_spa_version(zhp, &spa_version) < 0) in zfs_which_resv_prop()
960 uint64_t zoned, zfs_handle_t *zhp, zpool_handle_t *zpool_hdl, in zfs_valid_proplist() argument
1122 !(zfs_prop_setonce(prop) && zhp == NULL) && in zfs_valid_proplist()
1143 if (zhp == NULL) in zfs_valid_proplist()
1145 version = zfs_prop_get_int(zhp, ZFS_PROP_VERSION); in zfs_valid_proplist()
1421 if (zhp != NULL) { in zfs_valid_proplist()
1423 zfs_prop_get_int(zhp, ZFS_PROP_ENCRYPTION); in zfs_valid_proplist()
1471 if (type == ZFS_TYPE_VOLUME && zhp != NULL) { in zfs_valid_proplist()
1472 uint64_t volsize = zfs_prop_get_int(zhp, in zfs_valid_proplist()
1474 uint64_t blocksize = zfs_prop_get_int(zhp, in zfs_valid_proplist()
1530 if (zhp != NULL) { in zfs_valid_proplist()
1531 int64_t crypt = zfs_prop_get_int(zhp, in zfs_valid_proplist()
1579 zfs_add_synthetic_resv(zfs_handle_t *zhp, nvlist_t *nvl) in zfs_add_synthetic_resv() argument
1587 zpool_handle_t *zph = zpool_handle(zhp); in zfs_add_synthetic_resv()
1593 old_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_add_synthetic_resv()
1594 if (zfs_which_resv_prop(zhp, &resv_prop) < 0) in zfs_add_synthetic_resv()
1596 old_reservation = zfs_prop_get_int(zhp, resv_prop); in zfs_add_synthetic_resv()
1600 zfs_prop_get_int(zhp, ZFS_PROP_VOLBLOCKSIZE)); in zfs_add_synthetic_resv()
1618 (void) no_memory(zhp->zfs_hdl); in zfs_add_synthetic_resv()
1630 zfs_fix_auto_resv(zfs_handle_t *zhp, nvlist_t *nvl) in zfs_fix_auto_resv() argument
1637 if (!ZFS_IS_VOLUME(zhp)) { in zfs_fix_auto_resv()
1641 if (zfs_which_resv_prop(zhp, &prop) != 0) { in zfs_fix_auto_resv()
1661 zfs_prop_get_int(zhp, ZFS_PROP_VOLBLOCKSIZE)); in zfs_fix_auto_resv()
1665 volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_fix_auto_resv()
1668 resvsize = zvol_volsize_to_reservation(zpool_handle(zhp), volsize, in zfs_fix_auto_resv()
1674 (void) no_memory(zhp->zfs_hdl); in zfs_fix_auto_resv()
1791 zfs_prop_set(zfs_handle_t *zhp, const char *propname, const char *propval) in zfs_prop_set() argument
1795 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_set()
1800 zhp->zfs_name); in zfs_prop_set()
1808 ret = zfs_prop_set_list(zhp, nvl); in zfs_prop_set()
1822 zfs_prop_set_list(zfs_handle_t *zhp, nvlist_t *props) in zfs_prop_set_list() argument
1829 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_set_list()
1836 zhp->zfs_name); in zfs_prop_set_list()
1838 if ((nvl = zfs_valid_proplist(hdl, zhp->zfs_type, props, in zfs_prop_set_list()
1839 zfs_prop_get_int(zhp, ZFS_PROP_ZONED), zhp, zhp->zpool_hdl, in zfs_prop_set_list()
1851 (added_resv = zfs_add_synthetic_resv(zhp, nvl)) == -1) { in zfs_prop_set_list()
1857 (added_resv = zfs_fix_auto_resv(zhp, nvl)) == -1) { in zfs_prop_set_list()
1888 zfs_is_mounted(zhp, NULL))) { in zfs_prop_set_list()
1889 cls[cl_idx] = changelist_gather(zhp, prop, 0, 0); in zfs_prop_set_list()
1914 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_set_list()
1942 uint64_t old_volsize = zfs_prop_get_int(zhp, in zfs_prop_set_list()
1972 (void) get_stats(zhp); in zfs_prop_set_list()
1993 zfs_prop_inherit(zfs_handle_t *zhp, const char *propname, boolean_t received) in zfs_prop_inherit() argument
1998 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_inherit()
2003 "cannot inherit %s for '%s'"), propname, zhp->zfs_name); in zfs_prop_inherit()
2017 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_inherit()
2020 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_INHERIT_PROP, &zc) != 0) in zfs_prop_inherit()
2038 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type, B_FALSE)) in zfs_prop_inherit()
2045 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_inherit()
2049 zfs_prop_get_int(zhp, ZFS_PROP_ZONED)) { in zfs_prop_inherit()
2058 if ((cl = changelist_gather(zhp, prop, 0, 0)) == NULL) in zfs_prop_inherit()
2072 if ((ret = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_INHERIT_PROP, &zc)) != 0) { in zfs_prop_inherit()
2082 (void) get_stats(zhp); in zfs_prop_inherit()
2095 getprop_uint64(zfs_handle_t *zhp, zfs_prop_t prop, char **source) in getprop_uint64() argument
2101 if (nvlist_lookup_nvlist(zhp->zfs_props, in getprop_uint64()
2106 verify(!zhp->zfs_props_table || in getprop_uint64()
2107 zhp->zfs_props_table[prop] == B_TRUE); in getprop_uint64()
2116 getprop_string(zfs_handle_t *zhp, zfs_prop_t prop, char **source) in getprop_string() argument
2122 if (nvlist_lookup_nvlist(zhp->zfs_props, in getprop_string()
2127 verify(!zhp->zfs_props_table || in getprop_string()
2128 zhp->zfs_props_table[prop] == B_TRUE); in getprop_string()
2137 zfs_is_recvd_props_mode(zfs_handle_t *zhp) in zfs_is_recvd_props_mode() argument
2139 return (zhp->zfs_props == zhp->zfs_recvd_props); in zfs_is_recvd_props_mode()
2143 zfs_set_recvd_props_mode(zfs_handle_t *zhp, uint64_t *cookie) in zfs_set_recvd_props_mode() argument
2145 *cookie = (uint64_t)(uintptr_t)zhp->zfs_props; in zfs_set_recvd_props_mode()
2146 zhp->zfs_props = zhp->zfs_recvd_props; in zfs_set_recvd_props_mode()
2150 zfs_unset_recvd_props_mode(zfs_handle_t *zhp, uint64_t *cookie) in zfs_unset_recvd_props_mode() argument
2152 zhp->zfs_props = (nvlist_t *)(uintptr_t)*cookie; in zfs_unset_recvd_props_mode()
2166 get_numeric_property(zfs_handle_t *zhp, zfs_prop_t prop, zprop_source_t *src, in get_numeric_property() argument
2174 boolean_t received = zfs_is_recvd_props_mode(zhp); in get_numeric_property()
2182 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT && in get_numeric_property()
2183 !zfs_prop_valid_for_type(prop, zhp->zfs_head_type, B_TRUE)) { in get_numeric_property()
2233 if (!zhp->zfs_mntcheck && in get_numeric_property()
2235 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_numeric_property()
2238 if (libzfs_mnttab_find(hdl, zhp->zfs_name, &entry) == 0) { in get_numeric_property()
2239 zhp->zfs_mntopts = zfs_strdup(hdl, in get_numeric_property()
2241 if (zhp->zfs_mntopts == NULL) in get_numeric_property()
2245 zhp->zfs_mntcheck = B_TRUE; in get_numeric_property()
2248 if (zhp->zfs_mntopts == NULL) in get_numeric_property()
2251 mnt.mnt_mntopts = zhp->zfs_mntopts; in get_numeric_property()
2261 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2287 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2291 *source = zhp->zfs_name; in get_numeric_property()
2296 *val = (zhp->zfs_mntopts != NULL); in get_numeric_property()
2300 *val = zhp->zfs_dmustats.dds_num_clones; in get_numeric_property()
2307 if (zcmd_alloc_dst_nvlist(zhp->zfs_hdl, &zc, 0) != 0) in get_numeric_property()
2309 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in get_numeric_property()
2310 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_OBJSET_ZPLPROPS, &zc)) { in get_numeric_property()
2314 if (zcmd_read_dst_nvlist(zhp->zfs_hdl, &zc, &zplprops) != 0 || in get_numeric_property()
2325 *val = zhp->zfs_dmustats.dds_inconsistent; in get_numeric_property()
2332 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2350 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in get_numeric_property()
2352 return (zfs_error(zhp->zfs_hdl, EZFS_BADPROP, in get_numeric_property()
2364 get_source(zfs_handle_t *zhp, zprop_source_t *srctype, char *source, in get_source() argument
2377 if (strcmp(source, zhp->zfs_name) == 0) { in get_source()
2388 zfs_prop_get_recvd(zfs_handle_t *zhp, const char *propname, char *propbuf, in zfs_prop_get_recvd() argument
2394 if (zhp->zfs_recvd_props == NULL) in zfs_prop_get_recvd()
2395 if (get_recvd_props_ioctl(zhp) != 0) in zfs_prop_get_recvd()
2402 if (!nvlist_exists(zhp->zfs_recvd_props, propname)) in zfs_prop_get_recvd()
2404 zfs_set_recvd_props_mode(zhp, &cookie); in zfs_prop_get_recvd()
2405 err = zfs_prop_get(zhp, prop, propbuf, proplen, in zfs_prop_get_recvd()
2407 zfs_unset_recvd_props_mode(zhp, &cookie); in zfs_prop_get_recvd()
2411 if (nvlist_lookup_nvlist(zhp->zfs_recvd_props, in zfs_prop_get_recvd()
2423 get_clones_string(zfs_handle_t *zhp, char *propbuf, size_t proplen) in get_clones_string() argument
2428 value = zfs_get_clones_nvl(zhp); in get_clones_string()
2451 get_clones_cb(zfs_handle_t *zhp, void *arg) in get_clones_cb() argument
2456 zfs_close(zhp); in get_clones_cb()
2460 if (zfs_prop_get(zhp, ZFS_PROP_ORIGIN, gca->buf, sizeof (gca->buf), in get_clones_cb()
2464 fnvlist_add_boolean(gca->value, zfs_get_name(zhp)); in get_clones_cb()
2469 (void) zfs_iter_children(zhp, get_clones_cb, gca); in get_clones_cb()
2470 zfs_close(zhp); in get_clones_cb()
2475 zfs_get_clones_nvl(zfs_handle_t *zhp) in zfs_get_clones_nvl() argument
2479 if (nvlist_lookup_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2487 if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT) in zfs_get_clones_nvl()
2496 gca.numclones = zfs_prop_get_int(zhp, ZFS_PROP_NUMCLONES); in zfs_get_clones_nvl()
2498 gca.origin = zhp->zfs_name; in zfs_get_clones_nvl()
2506 (void) strlcpy(pool, zhp->zfs_name, sizeof (pool)); in zfs_get_clones_nvl()
2508 root = zfs_open(zhp->zfs_hdl, pool, in zfs_get_clones_nvl()
2516 nvlist_add_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2524 verify(0 == nvlist_lookup_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2539 zcp_check(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t intval, in zcp_check() argument
2542 if (!zhp->zfs_hdl->libzfs_prop_debug) in zcp_check()
2545 char *poolname = zhp->zpool_hdl->zpool_name; in zcp_check()
2556 fnvlist_add_string(argnvl, "dataset", zhp->zfs_name); in zcp_check()
2609 zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen, in zfs_prop_get() argument
2616 boolean_t received = zfs_is_recvd_props_mode(zhp); in zfs_prop_get()
2621 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type, B_FALSE)) in zfs_prop_get()
2637 val = getprop_uint64(zhp, prop, &source); in zfs_prop_get()
2647 zcp_check(zhp, prop, val, NULL); in zfs_prop_get()
2662 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2679 relpath = zhp->zfs_name + strlen(source); in zfs_prop_get()
2684 if ((zpool_get_prop(zhp->zpool_hdl, in zfs_prop_get()
2716 zcp_check(zhp, prop, 0, propbuf); in zfs_prop_get()
2720 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2724 zcp_check(zhp, prop, 0, str); in zfs_prop_get()
2728 if (get_clones_string(zhp, propbuf, proplen) != 0) in zfs_prop_get()
2737 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2757 zcp_check(zhp, prop, val, NULL); in zfs_prop_get()
2765 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2783 zcp_check(zhp, prop, val, NULL); in zfs_prop_get()
2788 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2793 zcp_check(zhp, prop, val, NULL); in zfs_prop_get()
2797 switch (zhp->zfs_type) { in zfs_prop_get()
2814 zcp_check(zhp, prop, 0, propbuf); in zfs_prop_get()
2824 if (get_numeric_property(zhp, ZFS_PROP_MOUNTED, in zfs_prop_get()
2839 (void) strlcpy(propbuf, zhp->zfs_name, proplen); in zfs_prop_get()
2840 zcp_check(zhp, prop, 0, propbuf); in zfs_prop_get()
2849 getprop_string(zhp, prop, &source), proplen); in zfs_prop_get()
2893 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2896 zcp_check(zhp, prop, val, NULL); in zfs_prop_get()
2906 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2914 zcp_check(zhp, prop, val, NULL); in zfs_prop_get()
2920 if (get_numeric_property(zhp, prop, src, in zfs_prop_get()
2931 zcp_check(zhp, prop, val, NULL); in zfs_prop_get()
2935 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2940 zcp_check(zhp, prop, 0, str); in zfs_prop_get()
2944 if (get_numeric_property(zhp, prop, src, in zfs_prop_get()
2951 zcp_check(zhp, prop, 0, strval); in zfs_prop_get()
2959 get_source(zhp, src, source, statbuf, statlen); in zfs_prop_get()
2970 zfs_prop_get_int(zfs_handle_t *zhp, zfs_prop_t prop) in zfs_prop_get_int() argument
2975 (void) get_numeric_property(zhp, prop, NULL, &source, &val); in zfs_prop_get_int()
2981 zfs_prop_set_int(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t val) in zfs_prop_set_int() argument
2986 return (zfs_prop_set(zhp, zfs_prop_to_name(prop), buf)); in zfs_prop_set_int()
2993 zfs_prop_get_numeric(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t *value, in zfs_prop_get_numeric() argument
3001 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type, B_FALSE)) { in zfs_prop_get_numeric()
3002 return (zfs_error_fmt(zhp->zfs_hdl, EZFS_PROPTYPE, in zfs_prop_get_numeric()
3010 if (get_numeric_property(zhp, prop, src, &source, value) != 0) in zfs_prop_get_numeric()
3013 get_source(zhp, src, source, statbuf, statlen); in zfs_prop_get_numeric()
3162 zfs_prop_get_userquota_common(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota_common() argument
3168 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_get_userquota_common()
3171 zfs_prop_get_int(zhp, ZFS_PROP_ZONED), in zfs_prop_get_userquota_common()
3177 err = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_USERSPACE_ONE, &zc); in zfs_prop_get_userquota_common()
3186 zfs_prop_get_userquota_int(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota_int() argument
3191 return (zfs_prop_get_userquota_common(zhp, propname, propvalue, in zfs_prop_get_userquota_int()
3196 zfs_prop_get_userquota(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota() argument
3203 err = zfs_prop_get_userquota_common(zhp, propname, &propvalue, in zfs_prop_get_userquota()
3228 zfs_prop_get_written_int(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_written_int() argument
3235 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_get_written_int()
3244 (void) strlcpy(zc.zc_value, zhp->zfs_name, in zfs_prop_get_written_int()
3253 err = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_SPACE_WRITTEN, &zc); in zfs_prop_get_written_int()
3262 zfs_prop_get_written(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_written() argument
3268 err = zfs_prop_get_written_int(zhp, propname, &propvalue); in zfs_prop_get_written()
3285 zfs_get_name(const zfs_handle_t *zhp) in zfs_get_name() argument
3287 return (zhp->zfs_name); in zfs_get_name()
3294 zfs_get_pool_name(const zfs_handle_t *zhp) in zfs_get_pool_name() argument
3296 return (zhp->zpool_hdl->zpool_name); in zfs_get_pool_name()
3303 zfs_get_type(const zfs_handle_t *zhp) in zfs_get_type() argument
3305 return (zhp->zfs_type); in zfs_get_type()
3349 zfs_parent_name(zfs_handle_t *zhp, char *buf, size_t buflen) in zfs_parent_name() argument
3351 return (parent_name(zfs_get_name(zhp), buf, buflen)); in zfs_parent_name()
3369 zfs_handle_t *zhp; in check_parents() local
3396 while ((zhp = make_dataset_handle(hdl, parent)) == NULL) { in check_parents()
3414 is_zoned = zfs_prop_get_int(zhp, ZFS_PROP_ZONED); in check_parents()
3421 zfs_close(zhp); in check_parents()
3426 if (zfs_get_type(zhp) != ZFS_TYPE_FILESYSTEM) { in check_parents()
3430 zfs_close(zhp); in check_parents()
3434 zfs_close(zhp); in check_parents()
3446 zfs_handle_t *zhp; in zfs_dataset_exists() local
3454 if ((zhp = make_dataset_handle(hdl, path)) != NULL) { in zfs_dataset_exists()
3455 int ds_type = zhp->zfs_type; in zfs_dataset_exists()
3457 zfs_close(zhp); in zfs_dataset_exists()
3759 zfs_destroy(zfs_handle_t *zhp, boolean_t defer) in zfs_destroy() argument
3763 if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT && defer) in zfs_destroy()
3766 if (zhp->zfs_type == ZFS_TYPE_BOOKMARK) { in zfs_destroy()
3768 fnvlist_add_boolean(nv, zhp->zfs_name); in zfs_destroy()
3772 return (zfs_standard_error_fmt(zhp->zfs_hdl, error, in zfs_destroy()
3774 zhp->zfs_name)); in zfs_destroy()
3779 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_destroy()
3781 fnvlist_add_boolean(nv, zhp->zfs_name); in zfs_destroy()
3785 error = lzc_destroy(zhp->zfs_name); in zfs_destroy()
3789 return (zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_destroy()
3791 zhp->zfs_name)); in zfs_destroy()
3794 remove_mountpoint(zhp); in zfs_destroy()
3805 zfs_check_snap_cb(zfs_handle_t *zhp, void *arg) in zfs_check_snap_cb() argument
3812 "%s@%s", zhp->zfs_name, dd->snapname); in zfs_check_snap_cb()
3817 rv = zfs_iter_filesystems(zhp, zfs_check_snap_cb, dd); in zfs_check_snap_cb()
3818 zfs_close(zhp); in zfs_check_snap_cb()
3826 zfs_destroy_snaps(zfs_handle_t *zhp, char *snapname, boolean_t defer) in zfs_destroy_snaps() argument
3833 (void) zfs_check_snap_cb(zfs_handle_dup(zhp), &dd); in zfs_destroy_snaps()
3836 ret = zfs_standard_error_fmt(zhp->zfs_hdl, ENOENT, in zfs_destroy_snaps()
3838 zhp->zfs_name, snapname); in zfs_destroy_snaps()
3840 ret = zfs_destroy_snaps_nvl(zhp->zfs_hdl, dd.nvl, defer); in zfs_destroy_snaps()
3896 zfs_clone(zfs_handle_t *zhp, const char *target, nvlist_t *props) in zfs_clone() argument
3901 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_clone()
3904 assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT); in zfs_clone()
3924 if (ZFS_IS_VOLUME(zhp)) { in zfs_clone()
3930 zhp, zhp->zpool_hdl, B_TRUE, errbuf)) == NULL) in zfs_clone()
3932 if (zfs_fix_auto_resv(zhp, props) == -1) { in zfs_clone()
3938 if (zfs_crypto_clone_check(hdl, zhp, parent, props) != 0) { in zfs_clone()
3943 ret = lzc_clone(target, zhp->zfs_name, props); in zfs_clone()
3959 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_clone()
3961 return (zfs_error(zhp->zfs_hdl, EZFS_NOENT, errbuf)); in zfs_clone()
3964 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_clone()
3966 return (zfs_error(zhp->zfs_hdl, EZFS_CROSSTARGET, in zfs_clone()
3970 return (zfs_standard_error(zhp->zfs_hdl, errno, in zfs_clone()
3982 zfs_promote(zfs_handle_t *zhp) in zfs_promote() argument
3984 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_promote()
3990 "cannot promote '%s'"), zhp->zfs_name); in zfs_promote()
3992 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_promote()
3998 if (zhp->zfs_dmustats.dds_origin[0] == '\0') { in zfs_promote()
4004 if (!zfs_validate_name(hdl, zhp->zfs_name, zhp->zfs_type, B_TRUE)) in zfs_promote()
4007 ret = lzc_promote(zhp->zfs_name, snapname, sizeof (snapname)); in zfs_promote()
4015 snapname, zhp->zfs_dmustats.dds_origin); in zfs_promote()
4031 zfs_snapshot_cb(zfs_handle_t *zhp, void *arg) in zfs_snapshot_cb() argument
4037 if (zfs_prop_get_int(zhp, ZFS_PROP_INCONSISTENT) == 0) { in zfs_snapshot_cb()
4039 "%s@%s", zfs_get_name(zhp), sd->sd_snapname); in zfs_snapshot_cb()
4043 rv = zfs_iter_filesystems(zhp, zfs_snapshot_cb, sd); in zfs_snapshot_cb()
4045 zfs_close(zhp); in zfs_snapshot_cb()
4169 zfs_handle_t *zhp; in zfs_snapshot() local
4183 if ((zhp = zfs_open(hdl, fsname, ZFS_TYPE_FILESYSTEM | in zfs_snapshot()
4190 (void) zfs_snapshot_cb(zfs_handle_dup(zhp), &sd); in zfs_snapshot()
4197 zfs_close(zhp); in zfs_snapshot()
4215 rollback_destroy_dependent(zfs_handle_t *zhp, void *data) in rollback_destroy_dependent() argument
4221 clp = changelist_gather(zhp, ZFS_PROP_NAME, 0, in rollback_destroy_dependent()
4225 zfs_close(zhp); in rollback_destroy_dependent()
4228 if (zfs_destroy(zhp, B_FALSE) != 0) in rollback_destroy_dependent()
4231 changelist_remove(clp, zhp->zfs_name); in rollback_destroy_dependent()
4235 zfs_close(zhp); in rollback_destroy_dependent()
4240 rollback_destroy(zfs_handle_t *zhp, void *data) in rollback_destroy() argument
4244 if (zfs_prop_get_int(zhp, ZFS_PROP_CREATETXG) > cbp->cb_create) { in rollback_destroy()
4245 cbp->cb_error |= zfs_iter_dependents(zhp, B_FALSE, in rollback_destroy()
4248 cbp->cb_error |= zfs_destroy(zhp, B_FALSE); in rollback_destroy()
4251 zfs_close(zhp); in rollback_destroy()
4263 zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force) in zfs_rollback() argument
4271 assert(zhp->zfs_type == ZFS_TYPE_FILESYSTEM || in zfs_rollback()
4272 zhp->zfs_type == ZFS_TYPE_VOLUME); in zfs_rollback()
4280 (void) zfs_iter_snapshots(zhp, B_FALSE, rollback_destroy, &cb); in zfs_rollback()
4281 (void) zfs_iter_bookmarks(zhp, rollback_destroy, &cb); in zfs_rollback()
4291 if (zhp->zfs_type == ZFS_TYPE_VOLUME) { in zfs_rollback()
4292 if (zfs_which_resv_prop(zhp, &resv_prop) < 0) in zfs_rollback()
4294 old_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_rollback()
4296 (old_volsize == zfs_prop_get_int(zhp, resv_prop)); in zfs_rollback()
4304 err = lzc_rollback_to(zhp->zfs_name, snap->zfs_name); in zfs_rollback()
4310 zhp->zfs_name); in zfs_rollback()
4313 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_rollback()
4316 (void) zfs_error(zhp->zfs_hdl, EZFS_EXISTS, errbuf); in zfs_rollback()
4319 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_rollback()
4321 snap->zfs_name, zhp->zfs_name); in zfs_rollback()
4322 (void) zfs_error(zhp->zfs_hdl, EZFS_NOENT, errbuf); in zfs_rollback()
4325 (void) zfs_error(zhp->zfs_hdl, EZFS_BADTYPE, errbuf); in zfs_rollback()
4328 (void) zfs_standard_error(zhp->zfs_hdl, err, errbuf); in zfs_rollback()
4339 if ((zhp->zfs_type == ZFS_TYPE_VOLUME) && in zfs_rollback()
4340 (zhp = make_dataset_handle(zhp->zfs_hdl, zhp->zfs_name))) { in zfs_rollback()
4342 new_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_rollback()
4344 err = zfs_prop_set_int(zhp, resv_prop, in zfs_rollback()
4347 zfs_close(zhp); in zfs_rollback()
4356 zfs_rename(zfs_handle_t *zhp, const char *target, boolean_t recursive, in zfs_rename() argument
4366 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_rename()
4370 if (strcmp(zhp->zfs_name, target) == 0) in zfs_rename()
4377 if (!zfs_validate_name(hdl, zhp->zfs_name, zhp->zfs_type, B_TRUE)) in zfs_rename()
4383 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_rename()
4390 (void) strlcpy(parent, zhp->zfs_name, in zfs_rename()
4404 if (strncmp(zhp->zfs_name, target, delim - target) in zfs_rename()
4405 != 0 || zhp->zfs_name[delim - target] != '@') { in zfs_rename()
4414 if (!zfs_validate_name(hdl, target, zhp->zfs_type, B_TRUE)) in zfs_rename()
4423 if (!zfs_validate_name(hdl, target, zhp->zfs_type, B_TRUE)) in zfs_rename()
4432 if (strncmp(zhp->zfs_name, target, delim - target) != 0 || in zfs_rename()
4433 zhp->zfs_name[delim - target] != '/') { in zfs_rename()
4440 if (is_descendant(zhp->zfs_name, target)) { in zfs_rename()
4449 dgettext(TEXT_DOMAIN, "cannot rename '%s'"), zhp->zfs_name); in zfs_rename()
4452 zfs_prop_get_int(zhp, ZFS_PROP_ZONED)) { in zfs_rename()
4466 if (zfs_is_mounted(zhp, &mountpnt)) { in zfs_rename()
4477 parentname = zfs_strdup(zhp->zfs_hdl, zhp->zfs_name); in zfs_rename()
4484 zhrp = zfs_open(zhp->zfs_hdl, parentname, ZFS_TYPE_DATASET); in zfs_rename()
4489 } else if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT) { in zfs_rename()
4490 if ((cl = changelist_gather(zhp, ZFS_PROP_NAME, 0, in zfs_rename()
4507 if (ZFS_IS_VOLUME(zhp)) in zfs_rename()
4512 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_rename()
4517 if ((ret = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_RENAME, &zc)) != 0) { in zfs_rename()
4536 (void) zfs_standard_error(zhp->zfs_hdl, errno, errbuf); in zfs_rename()
4547 changelist_rename(cl, zfs_get_name(zhp), target); in zfs_rename()
4566 zfs_get_user_props(zfs_handle_t *zhp) in zfs_get_user_props() argument
4568 return (zhp->zfs_user_props); in zfs_get_user_props()
4572 zfs_get_recvd_props(zfs_handle_t *zhp) in zfs_get_recvd_props() argument
4574 if (zhp->zfs_recvd_props == NULL) in zfs_get_recvd_props()
4575 if (get_recvd_props_ioctl(zhp) != 0) in zfs_get_recvd_props()
4577 return (zhp->zfs_recvd_props); in zfs_get_recvd_props()
4594 zfs_expand_proplist(zfs_handle_t *zhp, zprop_list_t **plp, boolean_t received, in zfs_expand_proplist() argument
4597 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_expand_proplist()
4608 userprops = zfs_get_user_props(zhp); in zfs_expand_proplist()
4661 if (zfs_prop_get(zhp, entry->pl_prop, in zfs_expand_proplist()
4666 if (received && zfs_prop_get_recvd(zhp, in zfs_expand_proplist()
4679 if (received && zfs_prop_get_recvd(zhp, in zfs_expand_proplist()
4711 zfs_prune_proplist(zfs_handle_t *zhp, uint8_t *props) in zfs_prune_proplist() argument
4719 zhp->zfs_props_table = props; in zfs_prune_proplist()
4721 curr = nvlist_next_nvpair(zhp->zfs_props, NULL); in zfs_prune_proplist()
4725 nvpair_t *next = nvlist_next_nvpair(zhp->zfs_props, curr); in zfs_prune_proplist()
4735 (void) nvlist_remove(zhp->zfs_props, in zfs_prune_proplist()
4823 zfs_userspace(zfs_handle_t *zhp, zfs_userquota_prop_t type, in zfs_userspace() argument
4828 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_userspace()
4831 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_userspace()
4883 zfs_hold_one(zfs_handle_t *zhp, void *arg) in zfs_hold_one() argument
4890 "%s@%s", zhp->zfs_name, ha->snapname); in zfs_hold_one()
4896 rv = zfs_iter_filesystems(zhp, zfs_hold_one, ha); in zfs_hold_one()
4897 zfs_close(zhp); in zfs_hold_one()
4902 zfs_hold(zfs_handle_t *zhp, const char *snapname, const char *tag, in zfs_hold() argument
4912 (void) zfs_hold_one(zfs_handle_dup(zhp), &ha); in zfs_hold()
4922 zhp->zfs_name, snapname); in zfs_hold()
4923 (void) zfs_standard_error(zhp->zfs_hdl, ret, errbuf); in zfs_hold()
4927 ret = zfs_hold_nvl(zhp, cleanup_fd, ha.nvl); in zfs_hold()
4934 zfs_hold_nvl(zfs_handle_t *zhp, int cleanup_fd, nvlist_t *holds) in zfs_hold_nvl() argument
4938 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_hold_nvl()
5002 zfs_release_one(zfs_handle_t *zhp, void *arg) in zfs_release_one() argument
5010 "%s@%s", zhp->zfs_name, ha->snapname); in zfs_release_one()
5024 rv = zfs_iter_filesystems(zhp, zfs_release_one, ha); in zfs_release_one()
5025 zfs_close(zhp); in zfs_release_one()
5030 zfs_release(zfs_handle_t *zhp, const char *snapname, const char *tag, in zfs_release() argument
5037 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_release()
5045 (void) zfs_release_one(zfs_handle_dup(zhp), &ha); in zfs_release()
5053 zhp->zfs_name, snapname); in zfs_release()
5111 zfs_get_fsacl(zfs_handle_t *zhp, nvlist_t **nvl) in zfs_get_fsacl() argument
5114 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_get_fsacl()
5120 assert(zhp->zfs_type == ZFS_TYPE_VOLUME || in zfs_get_fsacl()
5121 zhp->zfs_type == ZFS_TYPE_FILESYSTEM); in zfs_get_fsacl()
5134 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_get_fsacl()
5178 zfs_set_fsacl(zfs_handle_t *zhp, boolean_t un, nvlist_t *nvl) in zfs_set_fsacl() argument
5181 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_set_fsacl()
5187 assert(zhp->zfs_type == ZFS_TYPE_VOLUME || in zfs_set_fsacl()
5188 zhp->zfs_type == ZFS_TYPE_FILESYSTEM); in zfs_set_fsacl()
5202 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_set_fsacl()
5232 zfs_get_holds(zfs_handle_t *zhp, nvlist_t **nvl) in zfs_get_holds() argument
5237 err = lzc_get_holds(zhp->zfs_name, nvl); in zfs_get_holds()
5240 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_get_holds()
5244 zhp->zfs_name); in zfs_get_holds()
5373 volsize_from_vdevs(zpool_handle_t *zhp, uint64_t nblocks, uint64_t blksize) in volsize_from_vdevs() argument
5379 config = zpool_get_config(zhp, NULL); in volsize_from_vdevs()