Lines Matching refs:zhp

248 process_user_props(zfs_handle_t *zhp, nvlist_t *props)  in process_user_props()  argument
250 libzfs_handle_t *hdl = zhp->zfs_hdl; in process_user_props()
277 zpool_add_handle(zfs_handle_t *zhp, const char *pool_name) in zpool_add_handle() argument
279 libzfs_handle_t *hdl = zhp->zfs_hdl; in zpool_add_handle()
291 zpool_find_handle(zfs_handle_t *zhp, const char *pool_name, int len) in zpool_find_handle() argument
293 libzfs_handle_t *hdl = zhp->zfs_hdl; in zpool_find_handle()
308 zpool_handle(zfs_handle_t *zhp) in zpool_handle() argument
314 len = strcspn(zhp->zfs_name, "/@#") + 1; in zpool_handle()
315 pool_name = zfs_alloc(zhp->zfs_hdl, len); in zpool_handle()
316 (void) strlcpy(pool_name, zhp->zfs_name, len); in zpool_handle()
318 zph = zpool_find_handle(zhp, pool_name, len); in zpool_handle()
320 zph = zpool_add_handle(zhp, pool_name); in zpool_handle()
343 get_stats_ioctl(zfs_handle_t *zhp, zfs_cmd_t *zc) in get_stats_ioctl() argument
345 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_stats_ioctl()
347 (void) strlcpy(zc->zc_name, zhp->zfs_name, sizeof (zc->zc_name)); in get_stats_ioctl()
365 get_recvd_props_ioctl(zfs_handle_t *zhp) in get_recvd_props_ioctl() argument
367 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_recvd_props_ioctl()
375 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in get_recvd_props_ioctl()
388 err = zcmd_read_dst_nvlist(zhp->zfs_hdl, &zc, &recvdprops); in get_recvd_props_ioctl()
393 nvlist_free(zhp->zfs_recvd_props); in get_recvd_props_ioctl()
394 zhp->zfs_recvd_props = recvdprops; in get_recvd_props_ioctl()
400 put_stats_zhdl(zfs_handle_t *zhp, zfs_cmd_t *zc) in put_stats_zhdl() argument
404 zhp->zfs_dmustats = zc->zc_objset_stats; /* structure assignment */ in put_stats_zhdl()
406 if (zcmd_read_dst_nvlist(zhp->zfs_hdl, zc, &allprops) != 0) { in put_stats_zhdl()
414 if ((userprops = process_user_props(zhp, allprops)) == NULL) { in put_stats_zhdl()
419 nvlist_free(zhp->zfs_props); in put_stats_zhdl()
420 nvlist_free(zhp->zfs_user_props); in put_stats_zhdl()
422 zhp->zfs_props = allprops; in put_stats_zhdl()
423 zhp->zfs_user_props = userprops; in put_stats_zhdl()
429 get_stats(zfs_handle_t *zhp) in get_stats() argument
434 if (zcmd_alloc_dst_nvlist(zhp->zfs_hdl, &zc, 0) != 0) in get_stats()
436 if (get_stats_ioctl(zhp, &zc) != 0) in get_stats()
438 else if (put_stats_zhdl(zhp, &zc) != 0) in get_stats()
448 zfs_refresh_properties(zfs_handle_t *zhp) in zfs_refresh_properties() argument
450 (void) get_stats(zhp); in zfs_refresh_properties()
458 make_dataset_handle_common(zfs_handle_t *zhp, zfs_cmd_t *zc) in make_dataset_handle_common() argument
460 if (put_stats_zhdl(zhp, zc) != 0) in make_dataset_handle_common()
467 if (zhp->zfs_dmustats.dds_type == DMU_OST_ZVOL) in make_dataset_handle_common()
468 zhp->zfs_head_type = ZFS_TYPE_VOLUME; in make_dataset_handle_common()
469 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZFS) in make_dataset_handle_common()
470 zhp->zfs_head_type = ZFS_TYPE_FILESYSTEM; in make_dataset_handle_common()
474 if (zhp->zfs_dmustats.dds_is_snapshot) in make_dataset_handle_common()
475 zhp->zfs_type = ZFS_TYPE_SNAPSHOT; in make_dataset_handle_common()
476 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZVOL) in make_dataset_handle_common()
477 zhp->zfs_type = ZFS_TYPE_VOLUME; in make_dataset_handle_common()
478 else if (zhp->zfs_dmustats.dds_type == DMU_OST_ZFS) in make_dataset_handle_common()
479 zhp->zfs_type = ZFS_TYPE_FILESYSTEM; in make_dataset_handle_common()
483 if ((zhp->zpool_hdl = zpool_handle(zhp)) == NULL) in make_dataset_handle_common()
494 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_dataset_handle() local
496 if (zhp == NULL) in make_dataset_handle()
499 zhp->zfs_hdl = hdl; in make_dataset_handle()
500 (void) strlcpy(zhp->zfs_name, path, sizeof (zhp->zfs_name)); in make_dataset_handle()
502 free(zhp); in make_dataset_handle()
505 if (get_stats_ioctl(zhp, &zc) == -1) { in make_dataset_handle()
507 free(zhp); in make_dataset_handle()
510 if (make_dataset_handle_common(zhp, &zc) == -1) { in make_dataset_handle()
511 free(zhp); in make_dataset_handle()
512 zhp = NULL; in make_dataset_handle()
515 return (zhp); in make_dataset_handle()
521 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_dataset_handle_zc() local
523 if (zhp == NULL) in make_dataset_handle_zc()
526 zhp->zfs_hdl = hdl; in make_dataset_handle_zc()
527 (void) strlcpy(zhp->zfs_name, zc->zc_name, sizeof (zhp->zfs_name)); in make_dataset_handle_zc()
528 if (make_dataset_handle_common(zhp, zc) == -1) { in make_dataset_handle_zc()
529 free(zhp); in make_dataset_handle_zc()
532 return (zhp); in make_dataset_handle_zc()
538 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in zfs_handle_dup() local
540 if (zhp == NULL) in zfs_handle_dup()
543 zhp->zfs_hdl = zhp_orig->zfs_hdl; in zfs_handle_dup()
544 zhp->zpool_hdl = zhp_orig->zpool_hdl; in zfs_handle_dup()
545 (void) strlcpy(zhp->zfs_name, zhp_orig->zfs_name, in zfs_handle_dup()
546 sizeof (zhp->zfs_name)); in zfs_handle_dup()
547 zhp->zfs_type = zhp_orig->zfs_type; in zfs_handle_dup()
548 zhp->zfs_head_type = zhp_orig->zfs_head_type; in zfs_handle_dup()
549 zhp->zfs_dmustats = zhp_orig->zfs_dmustats; in zfs_handle_dup()
551 if (nvlist_dup(zhp_orig->zfs_props, &zhp->zfs_props, 0) != 0) { in zfs_handle_dup()
552 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
553 zfs_close(zhp); in zfs_handle_dup()
559 &zhp->zfs_user_props, 0) != 0) { in zfs_handle_dup()
560 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
561 zfs_close(zhp); in zfs_handle_dup()
567 &zhp->zfs_recvd_props, 0)) { in zfs_handle_dup()
568 (void) no_memory(zhp->zfs_hdl); in zfs_handle_dup()
569 zfs_close(zhp); in zfs_handle_dup()
573 zhp->zfs_mntcheck = zhp_orig->zfs_mntcheck; in zfs_handle_dup()
575 zhp->zfs_mntopts = zfs_strdup(zhp_orig->zfs_hdl, in zfs_handle_dup()
578 zhp->zfs_props_table = zhp_orig->zfs_props_table; in zfs_handle_dup()
579 return (zhp); in zfs_handle_dup()
618 zfs_handle_t *zhp = calloc(sizeof (zfs_handle_t), 1); in make_bookmark_handle() local
620 if (zhp == NULL) in make_bookmark_handle()
624 zhp->zfs_hdl = parent->zfs_hdl; in make_bookmark_handle()
625 (void) strlcpy(zhp->zfs_name, path, sizeof (zhp->zfs_name)); in make_bookmark_handle()
628 if (nvlist_dup(bmark_props, &zhp->zfs_props, 0) != 0) { in make_bookmark_handle()
629 free(zhp); in make_bookmark_handle()
634 zhp->zfs_head_type = parent->zfs_head_type; in make_bookmark_handle()
635 zhp->zfs_type = ZFS_TYPE_BOOKMARK; in make_bookmark_handle()
637 if ((zhp->zpool_hdl = zpool_handle(zhp)) == NULL) { in make_bookmark_handle()
638 nvlist_free(zhp->zfs_props); in make_bookmark_handle()
639 free(zhp); in make_bookmark_handle()
643 return (zhp); in make_bookmark_handle()
648 zfs_handle_t *zhp; member
652 zfs_open_bookmarks_cb(zfs_handle_t *zhp, void *data) in zfs_open_bookmarks_cb() argument
659 if (strcmp(dp->path, zfs_get_name(zhp)) == 0) { in zfs_open_bookmarks_cb()
663 dp->zhp = zhp; in zfs_open_bookmarks_cb()
670 zfs_close(zhp); in zfs_open_bookmarks_cb()
682 zfs_handle_t *zhp; in zfs_open() local
707 if ((zhp = make_dataset_handle(hdl, path)) == NULL) { in zfs_open()
738 &cb_data) == 0) && (cb_data.zhp == NULL)) { in zfs_open()
743 if (cb_data.zhp == NULL) { in zfs_open()
748 zhp = cb_data.zhp; in zfs_open()
756 if (!(types & zhp->zfs_type)) { in zfs_open()
758 zfs_close(zhp); in zfs_open()
762 return (zhp); in zfs_open()
769 zfs_close(zfs_handle_t *zhp) in zfs_close() argument
771 if (zhp->zfs_mntopts) in zfs_close()
772 free(zhp->zfs_mntopts); in zfs_close()
773 nvlist_free(zhp->zfs_props); in zfs_close()
774 nvlist_free(zhp->zfs_user_props); in zfs_close()
775 nvlist_free(zhp->zfs_recvd_props); in zfs_close()
776 free(zhp); in zfs_close()
915 zfs_spa_version(zfs_handle_t *zhp, int *spa_version) in zfs_spa_version() argument
917 zpool_handle_t *zpool_handle = zhp->zpool_hdl; in zfs_spa_version()
931 zfs_which_resv_prop(zfs_handle_t *zhp, zfs_prop_t *resv_prop) in zfs_which_resv_prop() argument
935 if (zfs_spa_version(zhp, &spa_version) < 0) in zfs_which_resv_prop()
953 uint64_t zoned, zfs_handle_t *zhp, const char *errbuf) in zfs_valid_proplist() argument
1110 (!zfs_prop_setonce(prop) || zhp != NULL)) { in zfs_valid_proplist()
1130 if (zhp == NULL) in zfs_valid_proplist()
1132 version = zfs_prop_get_int(zhp, ZFS_PROP_VERSION); in zfs_valid_proplist()
1147 if (zhp != NULL) { in zfs_valid_proplist()
1148 maxbs = zpool_get_prop_int(zhp->zpool_hdl, in zfs_valid_proplist()
1379 if (type == ZFS_TYPE_VOLUME && zhp != NULL) { in zfs_valid_proplist()
1380 uint64_t volsize = zfs_prop_get_int(zhp, in zfs_valid_proplist()
1382 uint64_t blocksize = zfs_prop_get_int(zhp, in zfs_valid_proplist()
1453 zfs_add_synthetic_resv(zfs_handle_t *zhp, nvlist_t *nvl) in zfs_add_synthetic_resv() argument
1466 old_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_add_synthetic_resv()
1467 if (zfs_which_resv_prop(zhp, &resv_prop) < 0) in zfs_add_synthetic_resv()
1469 old_reservation = zfs_prop_get_int(zhp, resv_prop); in zfs_add_synthetic_resv()
1473 zfs_prop_get_int(zhp, ZFS_PROP_VOLBLOCKSIZE)); in zfs_add_synthetic_resv()
1491 (void) no_memory(zhp->zfs_hdl); in zfs_add_synthetic_resv()
1592 zfs_prop_set(zfs_handle_t *zhp, const char *propname, const char *propval) in zfs_prop_set() argument
1596 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_set()
1601 zhp->zfs_name); in zfs_prop_set()
1609 ret = zfs_prop_set_list(zhp, nvl); in zfs_prop_set()
1623 zfs_prop_set_list(zfs_handle_t *zhp, nvlist_t *props) in zfs_prop_set_list() argument
1630 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_set_list()
1637 zhp->zfs_name); in zfs_prop_set_list()
1639 if ((nvl = zfs_valid_proplist(hdl, zhp->zfs_type, props, in zfs_prop_set_list()
1640 zfs_prop_get_int(zhp, ZFS_PROP_ZONED), zhp, errbuf)) == NULL) in zfs_prop_set_list()
1651 (added_resv = zfs_add_synthetic_resv(zhp, nvl)) == -1) { in zfs_prop_set_list()
1682 cls[cl_idx] = changelist_gather(zhp, prop, 0, 0); in zfs_prop_set_list()
1707 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_set_list()
1730 uint64_t old_volsize = zfs_prop_get_int(zhp, in zfs_prop_set_list()
1760 (void) get_stats(zhp); in zfs_prop_set_list()
1781 zfs_prop_inherit(zfs_handle_t *zhp, const char *propname, boolean_t received) in zfs_prop_inherit() argument
1786 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_prop_inherit()
1791 "cannot inherit %s for '%s'"), propname, zhp->zfs_name); in zfs_prop_inherit()
1805 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_inherit()
1808 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_INHERIT_PROP, &zc) != 0) in zfs_prop_inherit()
1826 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type)) in zfs_prop_inherit()
1833 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_inherit()
1837 zfs_prop_get_int(zhp, ZFS_PROP_ZONED)) { in zfs_prop_inherit()
1846 if ((cl = changelist_gather(zhp, prop, 0, 0)) == NULL) in zfs_prop_inherit()
1860 if ((ret = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_INHERIT_PROP, &zc)) != 0) { in zfs_prop_inherit()
1870 (void) get_stats(zhp); in zfs_prop_inherit()
1883 getprop_uint64(zfs_handle_t *zhp, zfs_prop_t prop, char **source) in getprop_uint64() argument
1889 if (nvlist_lookup_nvlist(zhp->zfs_props, in getprop_uint64()
1894 verify(!zhp->zfs_props_table || in getprop_uint64()
1895 zhp->zfs_props_table[prop] == B_TRUE); in getprop_uint64()
1904 getprop_string(zfs_handle_t *zhp, zfs_prop_t prop, char **source) in getprop_string() argument
1910 if (nvlist_lookup_nvlist(zhp->zfs_props, in getprop_string()
1915 verify(!zhp->zfs_props_table || in getprop_string()
1916 zhp->zfs_props_table[prop] == B_TRUE); in getprop_string()
1925 zfs_is_recvd_props_mode(zfs_handle_t *zhp) in zfs_is_recvd_props_mode() argument
1927 return (zhp->zfs_props == zhp->zfs_recvd_props); in zfs_is_recvd_props_mode()
1931 zfs_set_recvd_props_mode(zfs_handle_t *zhp, uint64_t *cookie) in zfs_set_recvd_props_mode() argument
1933 *cookie = (uint64_t)(uintptr_t)zhp->zfs_props; in zfs_set_recvd_props_mode()
1934 zhp->zfs_props = zhp->zfs_recvd_props; in zfs_set_recvd_props_mode()
1938 zfs_unset_recvd_props_mode(zfs_handle_t *zhp, uint64_t *cookie) in zfs_unset_recvd_props_mode() argument
1940 zhp->zfs_props = (nvlist_t *)(uintptr_t)*cookie; in zfs_unset_recvd_props_mode()
1954 get_numeric_property(zfs_handle_t *zhp, zfs_prop_t prop, zprop_source_t *src, in get_numeric_property() argument
1962 boolean_t received = zfs_is_recvd_props_mode(zhp); in get_numeric_property()
2008 if (!zhp->zfs_mntcheck && in get_numeric_property()
2010 libzfs_handle_t *hdl = zhp->zfs_hdl; in get_numeric_property()
2013 if (libzfs_mnttab_find(hdl, zhp->zfs_name, &entry) == 0) { in get_numeric_property()
2014 zhp->zfs_mntopts = zfs_strdup(hdl, in get_numeric_property()
2016 if (zhp->zfs_mntopts == NULL) in get_numeric_property()
2020 zhp->zfs_mntcheck = B_TRUE; in get_numeric_property()
2023 if (zhp->zfs_mntopts == NULL) in get_numeric_property()
2026 mnt.mnt_mntopts = zhp->zfs_mntopts; in get_numeric_property()
2036 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2062 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2066 *source = zhp->zfs_name; in get_numeric_property()
2071 *val = (zhp->zfs_mntopts != NULL); in get_numeric_property()
2075 *val = zhp->zfs_dmustats.dds_num_clones; in get_numeric_property()
2082 if (!zfs_prop_valid_for_type(prop, zhp->zfs_head_type) || in get_numeric_property()
2083 zcmd_alloc_dst_nvlist(zhp->zfs_hdl, &zc, 0) != 0) in get_numeric_property()
2085 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in get_numeric_property()
2086 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_OBJSET_ZPLPROPS, &zc)) { in get_numeric_property()
2090 if (zcmd_read_dst_nvlist(zhp->zfs_hdl, &zc, &zplprops) != 0 || in get_numeric_property()
2102 *val = zhp->zfs_dmustats.dds_inconsistent; in get_numeric_property()
2109 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2123 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in get_numeric_property()
2125 return (zfs_error(zhp->zfs_hdl, EZFS_BADPROP, in get_numeric_property()
2137 get_source(zfs_handle_t *zhp, zprop_source_t *srctype, char *source, in get_source() argument
2150 if (strcmp(source, zhp->zfs_name) == 0) { in get_source()
2161 zfs_prop_get_recvd(zfs_handle_t *zhp, const char *propname, char *propbuf, in zfs_prop_get_recvd() argument
2167 if (zhp->zfs_recvd_props == NULL) in zfs_prop_get_recvd()
2168 if (get_recvd_props_ioctl(zhp) != 0) in zfs_prop_get_recvd()
2175 if (!nvlist_exists(zhp->zfs_recvd_props, propname)) in zfs_prop_get_recvd()
2177 zfs_set_recvd_props_mode(zhp, &cookie); in zfs_prop_get_recvd()
2178 err = zfs_prop_get(zhp, prop, propbuf, proplen, in zfs_prop_get_recvd()
2180 zfs_unset_recvd_props_mode(zhp, &cookie); in zfs_prop_get_recvd()
2184 if (nvlist_lookup_nvlist(zhp->zfs_recvd_props, in zfs_prop_get_recvd()
2196 get_clones_string(zfs_handle_t *zhp, char *propbuf, size_t proplen) in get_clones_string() argument
2201 value = zfs_get_clones_nvl(zhp); in get_clones_string()
2224 get_clones_cb(zfs_handle_t *zhp, void *arg) in get_clones_cb() argument
2229 zfs_close(zhp); in get_clones_cb()
2233 if (zfs_prop_get(zhp, ZFS_PROP_ORIGIN, gca->buf, sizeof (gca->buf), in get_clones_cb()
2237 fnvlist_add_boolean(gca->value, zfs_get_name(zhp)); in get_clones_cb()
2242 (void) zfs_iter_children(zhp, get_clones_cb, gca); in get_clones_cb()
2243 zfs_close(zhp); in get_clones_cb()
2248 zfs_get_clones_nvl(zfs_handle_t *zhp) in zfs_get_clones_nvl() argument
2252 if (nvlist_lookup_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2260 if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT) in zfs_get_clones_nvl()
2269 gca.numclones = zfs_prop_get_int(zhp, ZFS_PROP_NUMCLONES); in zfs_get_clones_nvl()
2271 gca.origin = zhp->zfs_name; in zfs_get_clones_nvl()
2279 (void) strlcpy(pool, zhp->zfs_name, sizeof (pool)); in zfs_get_clones_nvl()
2281 root = zfs_open(zhp->zfs_hdl, pool, in zfs_get_clones_nvl()
2289 nvlist_add_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2297 verify(0 == nvlist_lookup_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2314 zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen, in zfs_prop_get() argument
2321 boolean_t received = zfs_is_recvd_props_mode(zhp); in zfs_prop_get()
2326 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type)) in zfs_prop_get()
2342 val = getprop_uint64(zhp, prop, &source); in zfs_prop_get()
2366 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2383 relpath = zhp->zfs_name + strlen(source); in zfs_prop_get()
2388 if ((zpool_get_prop(zhp->zpool_hdl, in zfs_prop_get()
2424 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2431 if (get_clones_string(zhp, propbuf, proplen) != 0) in zfs_prop_get()
2440 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2468 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2489 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2497 switch (zhp->zfs_type) { in zfs_prop_get()
2523 if (get_numeric_property(zhp, ZFS_PROP_MOUNTED, in zfs_prop_get()
2538 (void) strlcpy(propbuf, zhp->zfs_name, proplen); in zfs_prop_get()
2547 getprop_string(zhp, prop, &source), proplen); in zfs_prop_get()
2585 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2593 if (get_numeric_property(zhp, prop, src, in zfs_prop_get()
2604 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2611 if (get_numeric_property(zhp, prop, src, in zfs_prop_get()
2624 get_source(zhp, src, source, statbuf, statlen); in zfs_prop_get()
2635 zfs_prop_get_int(zfs_handle_t *zhp, zfs_prop_t prop) in zfs_prop_get_int() argument
2640 (void) get_numeric_property(zhp, prop, NULL, &source, &val); in zfs_prop_get_int()
2646 zfs_prop_set_int(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t val) in zfs_prop_set_int() argument
2651 return (zfs_prop_set(zhp, zfs_prop_to_name(prop), buf)); in zfs_prop_set_int()
2658 zfs_prop_get_numeric(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t *value, in zfs_prop_get_numeric() argument
2666 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type)) { in zfs_prop_get_numeric()
2667 return (zfs_error_fmt(zhp->zfs_hdl, EZFS_PROPTYPE, in zfs_prop_get_numeric()
2675 if (get_numeric_property(zhp, prop, src, &source, value) != 0) in zfs_prop_get_numeric()
2678 get_source(zhp, src, source, statbuf, statlen); in zfs_prop_get_numeric()
2855 zfs_prop_get_userquota_common(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota_common() argument
2861 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_get_userquota_common()
2864 zfs_prop_get_int(zhp, ZFS_PROP_ZONED), in zfs_prop_get_userquota_common()
2870 err = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_USERSPACE_ONE, &zc); in zfs_prop_get_userquota_common()
2879 zfs_prop_get_userquota_int(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota_int() argument
2884 return (zfs_prop_get_userquota_common(zhp, propname, propvalue, in zfs_prop_get_userquota_int()
2889 zfs_prop_get_userquota(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota() argument
2896 err = zfs_prop_get_userquota_common(zhp, propname, &propvalue, in zfs_prop_get_userquota()
2914 zfs_prop_get_written_int(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_written_int() argument
2921 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_get_written_int()
2930 (void) strlcpy(zc.zc_value, zhp->zfs_name, in zfs_prop_get_written_int()
2939 err = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_SPACE_WRITTEN, &zc); in zfs_prop_get_written_int()
2948 zfs_prop_get_written(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_written() argument
2954 err = zfs_prop_get_written_int(zhp, propname, &propvalue); in zfs_prop_get_written()
2971 zfs_get_name(const zfs_handle_t *zhp) in zfs_get_name() argument
2973 return (zhp->zfs_name); in zfs_get_name()
2980 zfs_get_type(const zfs_handle_t *zhp) in zfs_get_type() argument
2982 return (zhp->zfs_type); in zfs_get_type()
3040 zfs_handle_t *zhp; in check_parents() local
3067 while ((zhp = make_dataset_handle(hdl, parent)) == NULL) { in check_parents()
3085 is_zoned = zfs_prop_get_int(zhp, ZFS_PROP_ZONED); in check_parents()
3092 zfs_close(zhp); in check_parents()
3097 if (zfs_get_type(zhp) != ZFS_TYPE_FILESYSTEM) { in check_parents()
3101 zfs_close(zhp); in check_parents()
3105 zfs_close(zhp); in check_parents()
3117 zfs_handle_t *zhp; in zfs_dataset_exists() local
3125 if ((zhp = make_dataset_handle(hdl, path)) != NULL) { in zfs_dataset_exists()
3126 int ds_type = zhp->zfs_type; in zfs_dataset_exists()
3128 zfs_close(zhp); in zfs_dataset_exists()
3382 zfs_destroy(zfs_handle_t *zhp, boolean_t defer) in zfs_destroy() argument
3386 if (zhp->zfs_type == ZFS_TYPE_BOOKMARK) { in zfs_destroy()
3388 fnvlist_add_boolean(nv, zhp->zfs_name); in zfs_destroy()
3392 return (zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_destroy()
3394 zhp->zfs_name)); in zfs_destroy()
3399 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_destroy()
3401 if (ZFS_IS_VOLUME(zhp)) { in zfs_destroy()
3408 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_DESTROY, &zc) != 0 && in zfs_destroy()
3410 return (zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_destroy()
3412 zhp->zfs_name)); in zfs_destroy()
3415 remove_mountpoint(zhp); in zfs_destroy()
3426 zfs_check_snap_cb(zfs_handle_t *zhp, void *arg) in zfs_check_snap_cb() argument
3433 "%s@%s", zhp->zfs_name, dd->snapname); in zfs_check_snap_cb()
3438 rv = zfs_iter_filesystems(zhp, zfs_check_snap_cb, dd); in zfs_check_snap_cb()
3439 zfs_close(zhp); in zfs_check_snap_cb()
3447 zfs_destroy_snaps(zfs_handle_t *zhp, char *snapname, boolean_t defer) in zfs_destroy_snaps() argument
3454 (void) zfs_check_snap_cb(zfs_handle_dup(zhp), &dd); in zfs_destroy_snaps()
3457 ret = zfs_standard_error_fmt(zhp->zfs_hdl, ENOENT, in zfs_destroy_snaps()
3459 zhp->zfs_name, snapname); in zfs_destroy_snaps()
3461 ret = zfs_destroy_snaps_nvl(zhp->zfs_hdl, dd.nvl, defer); in zfs_destroy_snaps()
3515 zfs_clone(zfs_handle_t *zhp, const char *target, nvlist_t *props) in zfs_clone() argument
3520 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_clone()
3523 assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT); in zfs_clone()
3542 if (ZFS_IS_VOLUME(zhp)) { in zfs_clone()
3548 zhp, errbuf)) == NULL) in zfs_clone()
3552 ret = lzc_clone(target, zhp->zfs_name, props); in zfs_clone()
3568 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_clone()
3570 return (zfs_error(zhp->zfs_hdl, EZFS_NOENT, errbuf)); in zfs_clone()
3573 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_clone()
3575 return (zfs_error(zhp->zfs_hdl, EZFS_CROSSTARGET, in zfs_clone()
3579 return (zfs_standard_error(zhp->zfs_hdl, errno, in zfs_clone()
3591 zfs_promote(zfs_handle_t *zhp) in zfs_promote() argument
3593 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_promote()
3600 "cannot promote '%s'"), zhp->zfs_name); in zfs_promote()
3602 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_promote()
3608 (void) strlcpy(parent, zhp->zfs_dmustats.dds_origin, sizeof (parent)); in zfs_promote()
3615 (void) strlcpy(zc.zc_value, zhp->zfs_dmustats.dds_origin, in zfs_promote()
3617 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_promote()
3644 zfs_snapshot_cb(zfs_handle_t *zhp, void *arg) in zfs_snapshot_cb() argument
3650 if (zfs_prop_get_int(zhp, ZFS_PROP_INCONSISTENT) == 0) { in zfs_snapshot_cb()
3652 "%s@%s", zfs_get_name(zhp), sd->sd_snapname); in zfs_snapshot_cb()
3656 rv = zfs_iter_filesystems(zhp, zfs_snapshot_cb, sd); in zfs_snapshot_cb()
3658 zfs_close(zhp); in zfs_snapshot_cb()
3740 zfs_handle_t *zhp; in zfs_snapshot() local
3754 if ((zhp = zfs_open(hdl, fsname, ZFS_TYPE_FILESYSTEM | in zfs_snapshot()
3761 (void) zfs_snapshot_cb(zfs_handle_dup(zhp), &sd); in zfs_snapshot()
3768 zfs_close(zhp); in zfs_snapshot()
3786 rollback_destroy_dependent(zfs_handle_t *zhp, void *data) in rollback_destroy_dependent() argument
3792 clp = changelist_gather(zhp, ZFS_PROP_NAME, 0, in rollback_destroy_dependent()
3796 zfs_close(zhp); in rollback_destroy_dependent()
3799 if (zfs_destroy(zhp, B_FALSE) != 0) in rollback_destroy_dependent()
3802 changelist_remove(clp, zhp->zfs_name); in rollback_destroy_dependent()
3806 zfs_close(zhp); in rollback_destroy_dependent()
3811 rollback_destroy(zfs_handle_t *zhp, void *data) in rollback_destroy() argument
3815 if (zfs_prop_get_int(zhp, ZFS_PROP_CREATETXG) > cbp->cb_create) { in rollback_destroy()
3816 cbp->cb_error |= zfs_iter_dependents(zhp, B_FALSE, in rollback_destroy()
3819 cbp->cb_error |= zfs_destroy(zhp, B_FALSE); in rollback_destroy()
3822 zfs_close(zhp); in rollback_destroy()
3834 zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force) in zfs_rollback() argument
3842 assert(zhp->zfs_type == ZFS_TYPE_FILESYSTEM || in zfs_rollback()
3843 zhp->zfs_type == ZFS_TYPE_VOLUME); in zfs_rollback()
3851 (void) zfs_iter_snapshots(zhp, rollback_destroy, &cb); in zfs_rollback()
3852 (void) zfs_iter_bookmarks(zhp, rollback_destroy, &cb); in zfs_rollback()
3862 if (zhp->zfs_type == ZFS_TYPE_VOLUME) { in zfs_rollback()
3863 if (zfs_which_resv_prop(zhp, &resv_prop) < 0) in zfs_rollback()
3865 old_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_rollback()
3867 (old_volsize == zfs_prop_get_int(zhp, resv_prop)); in zfs_rollback()
3877 err = lzc_rollback(zhp->zfs_name, NULL, 0); in zfs_rollback()
3879 (void) zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_rollback()
3881 zhp->zfs_name); in zfs_rollback()
3891 if ((zhp->zfs_type == ZFS_TYPE_VOLUME) && in zfs_rollback()
3892 (zhp = make_dataset_handle(zhp->zfs_hdl, zhp->zfs_name))) { in zfs_rollback()
3894 new_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_rollback()
3896 err = zfs_prop_set_int(zhp, resv_prop, in zfs_rollback()
3899 zfs_close(zhp); in zfs_rollback()
3908 zfs_rename(zfs_handle_t *zhp, const char *target, boolean_t recursive, in zfs_rename() argument
3918 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_rename()
3922 if (strcmp(zhp->zfs_name, target) == 0) in zfs_rename()
3931 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_rename()
3938 (void) strlcpy(parent, zhp->zfs_name, in zfs_rename()
3952 if (strncmp(zhp->zfs_name, target, delim - target) in zfs_rename()
3953 != 0 || zhp->zfs_name[delim - target] != '@') { in zfs_rename()
3961 if (!zfs_validate_name(hdl, target, zhp->zfs_type, B_TRUE)) in zfs_rename()
3970 if (!zfs_validate_name(hdl, target, zhp->zfs_type, B_TRUE)) in zfs_rename()
3979 if (strncmp(zhp->zfs_name, target, delim - target) != 0 || in zfs_rename()
3980 zhp->zfs_name[delim - target] != '/') { in zfs_rename()
3987 if (is_descendant(zhp->zfs_name, target)) { in zfs_rename()
3996 dgettext(TEXT_DOMAIN, "cannot rename '%s'"), zhp->zfs_name); in zfs_rename()
3999 zfs_prop_get_int(zhp, ZFS_PROP_ZONED)) { in zfs_rename()
4006 parentname = zfs_strdup(zhp->zfs_hdl, zhp->zfs_name); in zfs_rename()
4013 zhrp = zfs_open(zhp->zfs_hdl, parentname, ZFS_TYPE_DATASET); in zfs_rename()
4018 } else if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT) { in zfs_rename()
4019 if ((cl = changelist_gather(zhp, ZFS_PROP_NAME, 0, in zfs_rename()
4035 if (ZFS_IS_VOLUME(zhp)) in zfs_rename()
4040 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_rename()
4045 if ((ret = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_RENAME, &zc)) != 0) { in zfs_rename()
4059 (void) zfs_standard_error(zhp->zfs_hdl, errno, errbuf); in zfs_rename()
4070 changelist_rename(cl, zfs_get_name(zhp), target); in zfs_rename()
4089 zfs_get_user_props(zfs_handle_t *zhp) in zfs_get_user_props() argument
4091 return (zhp->zfs_user_props); in zfs_get_user_props()
4095 zfs_get_recvd_props(zfs_handle_t *zhp) in zfs_get_recvd_props() argument
4097 if (zhp->zfs_recvd_props == NULL) in zfs_get_recvd_props()
4098 if (get_recvd_props_ioctl(zhp) != 0) in zfs_get_recvd_props()
4100 return (zhp->zfs_recvd_props); in zfs_get_recvd_props()
4117 zfs_expand_proplist(zfs_handle_t *zhp, zprop_list_t **plp, boolean_t received, in zfs_expand_proplist() argument
4120 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_expand_proplist()
4131 userprops = zfs_get_user_props(zhp); in zfs_expand_proplist()
4184 if (zfs_prop_get(zhp, entry->pl_prop, in zfs_expand_proplist()
4189 if (received && zfs_prop_get_recvd(zhp, in zfs_expand_proplist()
4202 if (received && zfs_prop_get_recvd(zhp, in zfs_expand_proplist()
4234 zfs_prune_proplist(zfs_handle_t *zhp, uint8_t *props) in zfs_prune_proplist() argument
4242 zhp->zfs_props_table = props; in zfs_prune_proplist()
4244 curr = nvlist_next_nvpair(zhp->zfs_props, NULL); in zfs_prune_proplist()
4248 nvpair_t *next = nvlist_next_nvpair(zhp->zfs_props, curr); in zfs_prune_proplist()
4258 (void) nvlist_remove(zhp->zfs_props, in zfs_prune_proplist()
4347 zfs_userspace(zfs_handle_t *zhp, zfs_userquota_prop_t type, in zfs_userspace() argument
4352 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_userspace()
4355 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_userspace()
4396 zfs_hold_one(zfs_handle_t *zhp, void *arg) in zfs_hold_one() argument
4403 "%s@%s", zhp->zfs_name, ha->snapname); in zfs_hold_one()
4409 rv = zfs_iter_filesystems(zhp, zfs_hold_one, ha); in zfs_hold_one()
4410 zfs_close(zhp); in zfs_hold_one()
4415 zfs_hold(zfs_handle_t *zhp, const char *snapname, const char *tag, in zfs_hold() argument
4425 (void) zfs_hold_one(zfs_handle_dup(zhp), &ha); in zfs_hold()
4435 zhp->zfs_name, snapname); in zfs_hold()
4436 (void) zfs_standard_error(zhp->zfs_hdl, ret, errbuf); in zfs_hold()
4440 ret = zfs_hold_nvl(zhp, cleanup_fd, ha.nvl); in zfs_hold()
4447 zfs_hold_nvl(zfs_handle_t *zhp, int cleanup_fd, nvlist_t *holds) in zfs_hold_nvl() argument
4451 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_hold_nvl()
4515 zfs_release_one(zfs_handle_t *zhp, void *arg) in zfs_release_one() argument
4523 "%s@%s", zhp->zfs_name, ha->snapname); in zfs_release_one()
4537 rv = zfs_iter_filesystems(zhp, zfs_release_one, ha); in zfs_release_one()
4538 zfs_close(zhp); in zfs_release_one()
4543 zfs_release(zfs_handle_t *zhp, const char *snapname, const char *tag, in zfs_release() argument
4550 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_release()
4558 (void) zfs_release_one(zfs_handle_dup(zhp), &ha); in zfs_release()
4566 zhp->zfs_name, snapname); in zfs_release()
4624 zfs_get_fsacl(zfs_handle_t *zhp, nvlist_t **nvl) in zfs_get_fsacl() argument
4627 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_get_fsacl()
4633 assert(zhp->zfs_type == ZFS_TYPE_VOLUME || in zfs_get_fsacl()
4634 zhp->zfs_type == ZFS_TYPE_FILESYSTEM); in zfs_get_fsacl()
4647 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_get_fsacl()
4691 zfs_set_fsacl(zfs_handle_t *zhp, boolean_t un, nvlist_t *nvl) in zfs_set_fsacl() argument
4694 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_set_fsacl()
4700 assert(zhp->zfs_type == ZFS_TYPE_VOLUME || in zfs_set_fsacl()
4701 zhp->zfs_type == ZFS_TYPE_FILESYSTEM); in zfs_set_fsacl()
4715 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_set_fsacl()
4745 zfs_get_holds(zfs_handle_t *zhp, nvlist_t **nvl) in zfs_get_holds() argument
4750 err = lzc_get_holds(zhp->zfs_name, nvl); in zfs_get_holds()
4753 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_get_holds()
4757 zhp->zfs_name); in zfs_get_holds()