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()
2101 *val = zhp->zfs_dmustats.dds_inconsistent; in get_numeric_property()
2108 *val = getprop_uint64(zhp, prop, source); in get_numeric_property()
2122 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in get_numeric_property()
2124 return (zfs_error(zhp->zfs_hdl, EZFS_BADPROP, in get_numeric_property()
2136 get_source(zfs_handle_t *zhp, zprop_source_t *srctype, char *source, in get_source() argument
2149 if (strcmp(source, zhp->zfs_name) == 0) { in get_source()
2160 zfs_prop_get_recvd(zfs_handle_t *zhp, const char *propname, char *propbuf, in zfs_prop_get_recvd() argument
2166 if (zhp->zfs_recvd_props == NULL) in zfs_prop_get_recvd()
2167 if (get_recvd_props_ioctl(zhp) != 0) in zfs_prop_get_recvd()
2174 if (!nvlist_exists(zhp->zfs_recvd_props, propname)) in zfs_prop_get_recvd()
2176 zfs_set_recvd_props_mode(zhp, &cookie); in zfs_prop_get_recvd()
2177 err = zfs_prop_get(zhp, prop, propbuf, proplen, in zfs_prop_get_recvd()
2179 zfs_unset_recvd_props_mode(zhp, &cookie); in zfs_prop_get_recvd()
2183 if (nvlist_lookup_nvlist(zhp->zfs_recvd_props, in zfs_prop_get_recvd()
2195 get_clones_string(zfs_handle_t *zhp, char *propbuf, size_t proplen) in get_clones_string() argument
2200 value = zfs_get_clones_nvl(zhp); in get_clones_string()
2223 get_clones_cb(zfs_handle_t *zhp, void *arg) in get_clones_cb() argument
2228 zfs_close(zhp); in get_clones_cb()
2232 if (zfs_prop_get(zhp, ZFS_PROP_ORIGIN, gca->buf, sizeof (gca->buf), in get_clones_cb()
2236 fnvlist_add_boolean(gca->value, zfs_get_name(zhp)); in get_clones_cb()
2241 (void) zfs_iter_children(zhp, get_clones_cb, gca); in get_clones_cb()
2242 zfs_close(zhp); in get_clones_cb()
2247 zfs_get_clones_nvl(zfs_handle_t *zhp) in zfs_get_clones_nvl() argument
2251 if (nvlist_lookup_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2259 if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT) in zfs_get_clones_nvl()
2268 gca.numclones = zfs_prop_get_int(zhp, ZFS_PROP_NUMCLONES); in zfs_get_clones_nvl()
2270 gca.origin = zhp->zfs_name; in zfs_get_clones_nvl()
2278 (void) strlcpy(pool, zhp->zfs_name, sizeof (pool)); in zfs_get_clones_nvl()
2280 root = zfs_open(zhp->zfs_hdl, pool, in zfs_get_clones_nvl()
2288 nvlist_add_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2296 verify(0 == nvlist_lookup_nvlist(zhp->zfs_props, in zfs_get_clones_nvl()
2313 zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen, in zfs_prop_get() argument
2320 boolean_t received = zfs_is_recvd_props_mode(zhp); in zfs_prop_get()
2325 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type)) in zfs_prop_get()
2341 val = getprop_uint64(zhp, prop, &source); in zfs_prop_get()
2365 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2382 relpath = zhp->zfs_name + strlen(source); in zfs_prop_get()
2387 if ((zpool_get_prop(zhp->zpool_hdl, in zfs_prop_get()
2423 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2430 if (get_clones_string(zhp, propbuf, proplen) != 0) in zfs_prop_get()
2439 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2467 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2488 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2496 switch (zhp->zfs_type) { in zfs_prop_get()
2522 if (get_numeric_property(zhp, ZFS_PROP_MOUNTED, in zfs_prop_get()
2537 (void) strlcpy(propbuf, zhp->zfs_name, proplen); in zfs_prop_get()
2546 getprop_string(zhp, prop, &source), proplen); in zfs_prop_get()
2584 if (get_numeric_property(zhp, prop, src, &source, &val) != 0) in zfs_prop_get()
2592 if (get_numeric_property(zhp, prop, src, in zfs_prop_get()
2603 str = getprop_string(zhp, prop, &source); in zfs_prop_get()
2610 if (get_numeric_property(zhp, prop, src, in zfs_prop_get()
2623 get_source(zhp, src, source, statbuf, statlen); in zfs_prop_get()
2634 zfs_prop_get_int(zfs_handle_t *zhp, zfs_prop_t prop) in zfs_prop_get_int() argument
2639 (void) get_numeric_property(zhp, prop, NULL, &source, &val); in zfs_prop_get_int()
2645 zfs_prop_set_int(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t val) in zfs_prop_set_int() argument
2650 return (zfs_prop_set(zhp, zfs_prop_to_name(prop), buf)); in zfs_prop_set_int()
2657 zfs_prop_get_numeric(zfs_handle_t *zhp, zfs_prop_t prop, uint64_t *value, in zfs_prop_get_numeric() argument
2665 if (!zfs_prop_valid_for_type(prop, zhp->zfs_type)) { in zfs_prop_get_numeric()
2666 return (zfs_error_fmt(zhp->zfs_hdl, EZFS_PROPTYPE, in zfs_prop_get_numeric()
2674 if (get_numeric_property(zhp, prop, src, &source, value) != 0) in zfs_prop_get_numeric()
2677 get_source(zhp, src, source, statbuf, statlen); in zfs_prop_get_numeric()
2854 zfs_prop_get_userquota_common(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota_common() argument
2860 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_get_userquota_common()
2863 zfs_prop_get_int(zhp, ZFS_PROP_ZONED), in zfs_prop_get_userquota_common()
2869 err = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_USERSPACE_ONE, &zc); in zfs_prop_get_userquota_common()
2878 zfs_prop_get_userquota_int(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota_int() argument
2883 return (zfs_prop_get_userquota_common(zhp, propname, propvalue, in zfs_prop_get_userquota_int()
2888 zfs_prop_get_userquota(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_userquota() argument
2895 err = zfs_prop_get_userquota_common(zhp, propname, &propvalue, in zfs_prop_get_userquota()
2913 zfs_prop_get_written_int(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_written_int() argument
2920 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_prop_get_written_int()
2929 (void) strlcpy(zc.zc_value, zhp->zfs_name, in zfs_prop_get_written_int()
2938 err = ioctl(zhp->zfs_hdl->libzfs_fd, ZFS_IOC_SPACE_WRITTEN, &zc); in zfs_prop_get_written_int()
2947 zfs_prop_get_written(zfs_handle_t *zhp, const char *propname, in zfs_prop_get_written() argument
2953 err = zfs_prop_get_written_int(zhp, propname, &propvalue); in zfs_prop_get_written()
2970 zfs_get_name(const zfs_handle_t *zhp) in zfs_get_name() argument
2972 return (zhp->zfs_name); in zfs_get_name()
2979 zfs_get_type(const zfs_handle_t *zhp) in zfs_get_type() argument
2981 return (zhp->zfs_type); in zfs_get_type()
3039 zfs_handle_t *zhp; in check_parents() local
3066 while ((zhp = make_dataset_handle(hdl, parent)) == NULL) { in check_parents()
3084 is_zoned = zfs_prop_get_int(zhp, ZFS_PROP_ZONED); in check_parents()
3091 zfs_close(zhp); in check_parents()
3096 if (zfs_get_type(zhp) != ZFS_TYPE_FILESYSTEM) { in check_parents()
3100 zfs_close(zhp); in check_parents()
3104 zfs_close(zhp); in check_parents()
3116 zfs_handle_t *zhp; in zfs_dataset_exists() local
3124 if ((zhp = make_dataset_handle(hdl, path)) != NULL) { in zfs_dataset_exists()
3125 int ds_type = zhp->zfs_type; in zfs_dataset_exists()
3127 zfs_close(zhp); in zfs_dataset_exists()
3381 zfs_destroy(zfs_handle_t *zhp, boolean_t defer) in zfs_destroy() argument
3385 if (zhp->zfs_type == ZFS_TYPE_BOOKMARK) { in zfs_destroy()
3387 fnvlist_add_boolean(nv, zhp->zfs_name); in zfs_destroy()
3391 return (zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_destroy()
3393 zhp->zfs_name)); in zfs_destroy()
3398 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_destroy()
3400 if (ZFS_IS_VOLUME(zhp)) { in zfs_destroy()
3407 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_DESTROY, &zc) != 0 && in zfs_destroy()
3409 return (zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_destroy()
3411 zhp->zfs_name)); in zfs_destroy()
3414 remove_mountpoint(zhp); in zfs_destroy()
3425 zfs_check_snap_cb(zfs_handle_t *zhp, void *arg) in zfs_check_snap_cb() argument
3432 "%s@%s", zhp->zfs_name, dd->snapname); in zfs_check_snap_cb()
3437 rv = zfs_iter_filesystems(zhp, zfs_check_snap_cb, dd); in zfs_check_snap_cb()
3438 zfs_close(zhp); in zfs_check_snap_cb()
3446 zfs_destroy_snaps(zfs_handle_t *zhp, char *snapname, boolean_t defer) in zfs_destroy_snaps() argument
3453 (void) zfs_check_snap_cb(zfs_handle_dup(zhp), &dd); in zfs_destroy_snaps()
3456 ret = zfs_standard_error_fmt(zhp->zfs_hdl, ENOENT, in zfs_destroy_snaps()
3458 zhp->zfs_name, snapname); in zfs_destroy_snaps()
3460 ret = zfs_destroy_snaps_nvl(zhp->zfs_hdl, dd.nvl, defer); in zfs_destroy_snaps()
3514 zfs_clone(zfs_handle_t *zhp, const char *target, nvlist_t *props) in zfs_clone() argument
3519 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_clone()
3522 assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT); in zfs_clone()
3541 if (ZFS_IS_VOLUME(zhp)) { in zfs_clone()
3547 zhp, errbuf)) == NULL) in zfs_clone()
3551 ret = lzc_clone(target, zhp->zfs_name, props); in zfs_clone()
3567 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_clone()
3569 return (zfs_error(zhp->zfs_hdl, EZFS_NOENT, errbuf)); in zfs_clone()
3572 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN, in zfs_clone()
3574 return (zfs_error(zhp->zfs_hdl, EZFS_CROSSTARGET, in zfs_clone()
3578 return (zfs_standard_error(zhp->zfs_hdl, errno, in zfs_clone()
3590 zfs_promote(zfs_handle_t *zhp) in zfs_promote() argument
3592 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_promote()
3599 "cannot promote '%s'"), zhp->zfs_name); in zfs_promote()
3601 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_promote()
3607 (void) strlcpy(parent, zhp->zfs_dmustats.dds_origin, sizeof (parent)); in zfs_promote()
3614 (void) strlcpy(zc.zc_value, zhp->zfs_dmustats.dds_origin, in zfs_promote()
3616 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_promote()
3643 zfs_snapshot_cb(zfs_handle_t *zhp, void *arg) in zfs_snapshot_cb() argument
3649 if (zfs_prop_get_int(zhp, ZFS_PROP_INCONSISTENT) == 0) { in zfs_snapshot_cb()
3651 "%s@%s", zfs_get_name(zhp), sd->sd_snapname); in zfs_snapshot_cb()
3655 rv = zfs_iter_filesystems(zhp, zfs_snapshot_cb, sd); in zfs_snapshot_cb()
3657 zfs_close(zhp); in zfs_snapshot_cb()
3739 zfs_handle_t *zhp; in zfs_snapshot() local
3753 if ((zhp = zfs_open(hdl, fsname, ZFS_TYPE_FILESYSTEM | in zfs_snapshot()
3760 (void) zfs_snapshot_cb(zfs_handle_dup(zhp), &sd); in zfs_snapshot()
3767 zfs_close(zhp); in zfs_snapshot()
3785 rollback_destroy_dependent(zfs_handle_t *zhp, void *data) in rollback_destroy_dependent() argument
3791 clp = changelist_gather(zhp, ZFS_PROP_NAME, 0, in rollback_destroy_dependent()
3795 zfs_close(zhp); in rollback_destroy_dependent()
3798 if (zfs_destroy(zhp, B_FALSE) != 0) in rollback_destroy_dependent()
3801 changelist_remove(clp, zhp->zfs_name); in rollback_destroy_dependent()
3805 zfs_close(zhp); in rollback_destroy_dependent()
3810 rollback_destroy(zfs_handle_t *zhp, void *data) in rollback_destroy() argument
3814 if (zfs_prop_get_int(zhp, ZFS_PROP_CREATETXG) > cbp->cb_create) { in rollback_destroy()
3815 cbp->cb_error |= zfs_iter_dependents(zhp, B_FALSE, in rollback_destroy()
3818 cbp->cb_error |= zfs_destroy(zhp, B_FALSE); in rollback_destroy()
3821 zfs_close(zhp); in rollback_destroy()
3833 zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force) in zfs_rollback() argument
3841 assert(zhp->zfs_type == ZFS_TYPE_FILESYSTEM || in zfs_rollback()
3842 zhp->zfs_type == ZFS_TYPE_VOLUME); in zfs_rollback()
3850 (void) zfs_iter_snapshots(zhp, rollback_destroy, &cb); in zfs_rollback()
3851 (void) zfs_iter_bookmarks(zhp, rollback_destroy, &cb); in zfs_rollback()
3861 if (zhp->zfs_type == ZFS_TYPE_VOLUME) { in zfs_rollback()
3862 if (zfs_which_resv_prop(zhp, &resv_prop) < 0) in zfs_rollback()
3864 old_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_rollback()
3866 (old_volsize == zfs_prop_get_int(zhp, resv_prop)); in zfs_rollback()
3876 err = lzc_rollback(zhp->zfs_name, NULL, 0); in zfs_rollback()
3878 (void) zfs_standard_error_fmt(zhp->zfs_hdl, errno, in zfs_rollback()
3880 zhp->zfs_name); in zfs_rollback()
3890 if ((zhp->zfs_type == ZFS_TYPE_VOLUME) && in zfs_rollback()
3891 (zhp = make_dataset_handle(zhp->zfs_hdl, zhp->zfs_name))) { in zfs_rollback()
3893 new_volsize = zfs_prop_get_int(zhp, ZFS_PROP_VOLSIZE); in zfs_rollback()
3895 err = zfs_prop_set_int(zhp, resv_prop, in zfs_rollback()
3898 zfs_close(zhp); in zfs_rollback()
3907 zfs_rename(zfs_handle_t *zhp, const char *target, boolean_t recursive, in zfs_rename() argument
3917 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_rename()
3921 if (strcmp(zhp->zfs_name, target) == 0) in zfs_rename()
3930 if (zhp->zfs_type == ZFS_TYPE_SNAPSHOT) { in zfs_rename()
3937 (void) strlcpy(parent, zhp->zfs_name, in zfs_rename()
3951 if (strncmp(zhp->zfs_name, target, delim - target) in zfs_rename()
3952 != 0 || zhp->zfs_name[delim - target] != '@') { in zfs_rename()
3960 if (!zfs_validate_name(hdl, target, zhp->zfs_type, B_TRUE)) in zfs_rename()
3969 if (!zfs_validate_name(hdl, target, zhp->zfs_type, B_TRUE)) in zfs_rename()
3978 if (strncmp(zhp->zfs_name, target, delim - target) != 0 || in zfs_rename()
3979 zhp->zfs_name[delim - target] != '/') { in zfs_rename()
3986 if (is_descendant(zhp->zfs_name, target)) { in zfs_rename()
3995 dgettext(TEXT_DOMAIN, "cannot rename '%s'"), zhp->zfs_name); in zfs_rename()
3998 zfs_prop_get_int(zhp, ZFS_PROP_ZONED)) { in zfs_rename()
4005 parentname = zfs_strdup(zhp->zfs_hdl, zhp->zfs_name); in zfs_rename()
4012 zhrp = zfs_open(zhp->zfs_hdl, parentname, ZFS_TYPE_DATASET); in zfs_rename()
4017 } else if (zhp->zfs_type != ZFS_TYPE_SNAPSHOT) { in zfs_rename()
4018 if ((cl = changelist_gather(zhp, ZFS_PROP_NAME, 0, in zfs_rename()
4034 if (ZFS_IS_VOLUME(zhp)) in zfs_rename()
4039 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_rename()
4044 if ((ret = zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_RENAME, &zc)) != 0) { in zfs_rename()
4058 (void) zfs_standard_error(zhp->zfs_hdl, errno, errbuf); in zfs_rename()
4069 changelist_rename(cl, zfs_get_name(zhp), target); in zfs_rename()
4088 zfs_get_user_props(zfs_handle_t *zhp) in zfs_get_user_props() argument
4090 return (zhp->zfs_user_props); in zfs_get_user_props()
4094 zfs_get_recvd_props(zfs_handle_t *zhp) in zfs_get_recvd_props() argument
4096 if (zhp->zfs_recvd_props == NULL) in zfs_get_recvd_props()
4097 if (get_recvd_props_ioctl(zhp) != 0) in zfs_get_recvd_props()
4099 return (zhp->zfs_recvd_props); in zfs_get_recvd_props()
4116 zfs_expand_proplist(zfs_handle_t *zhp, zprop_list_t **plp, boolean_t received, in zfs_expand_proplist() argument
4119 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_expand_proplist()
4130 userprops = zfs_get_user_props(zhp); in zfs_expand_proplist()
4183 if (zfs_prop_get(zhp, entry->pl_prop, in zfs_expand_proplist()
4188 if (received && zfs_prop_get_recvd(zhp, in zfs_expand_proplist()
4201 if (received && zfs_prop_get_recvd(zhp, in zfs_expand_proplist()
4233 zfs_prune_proplist(zfs_handle_t *zhp, uint8_t *props) in zfs_prune_proplist() argument
4241 zhp->zfs_props_table = props; in zfs_prune_proplist()
4243 curr = nvlist_next_nvpair(zhp->zfs_props, NULL); in zfs_prune_proplist()
4247 nvpair_t *next = nvlist_next_nvpair(zhp->zfs_props, curr); in zfs_prune_proplist()
4257 (void) nvlist_remove(zhp->zfs_props, in zfs_prune_proplist()
4345 zfs_userspace(zfs_handle_t *zhp, zfs_userquota_prop_t type, in zfs_userspace() argument
4350 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_userspace()
4353 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_userspace()
4394 zfs_hold_one(zfs_handle_t *zhp, void *arg) in zfs_hold_one() argument
4401 "%s@%s", zhp->zfs_name, ha->snapname); in zfs_hold_one()
4407 rv = zfs_iter_filesystems(zhp, zfs_hold_one, ha); in zfs_hold_one()
4408 zfs_close(zhp); in zfs_hold_one()
4413 zfs_hold(zfs_handle_t *zhp, const char *snapname, const char *tag, in zfs_hold() argument
4423 (void) zfs_hold_one(zfs_handle_dup(zhp), &ha); in zfs_hold()
4433 zhp->zfs_name, snapname); in zfs_hold()
4434 (void) zfs_standard_error(zhp->zfs_hdl, ret, errbuf); in zfs_hold()
4438 ret = zfs_hold_nvl(zhp, cleanup_fd, ha.nvl); in zfs_hold()
4445 zfs_hold_nvl(zfs_handle_t *zhp, int cleanup_fd, nvlist_t *holds) in zfs_hold_nvl() argument
4449 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_hold_nvl()
4513 zfs_release_one(zfs_handle_t *zhp, void *arg) in zfs_release_one() argument
4521 "%s@%s", zhp->zfs_name, ha->snapname); in zfs_release_one()
4535 rv = zfs_iter_filesystems(zhp, zfs_release_one, ha); in zfs_release_one()
4536 zfs_close(zhp); in zfs_release_one()
4541 zfs_release(zfs_handle_t *zhp, const char *snapname, const char *tag, in zfs_release() argument
4548 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_release()
4556 (void) zfs_release_one(zfs_handle_dup(zhp), &ha); in zfs_release()
4564 zhp->zfs_name, snapname); in zfs_release()
4622 zfs_get_fsacl(zfs_handle_t *zhp, nvlist_t **nvl) in zfs_get_fsacl() argument
4625 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_get_fsacl()
4631 assert(zhp->zfs_type == ZFS_TYPE_VOLUME || in zfs_get_fsacl()
4632 zhp->zfs_type == ZFS_TYPE_FILESYSTEM); in zfs_get_fsacl()
4645 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_get_fsacl()
4689 zfs_set_fsacl(zfs_handle_t *zhp, boolean_t un, nvlist_t *nvl) in zfs_set_fsacl() argument
4692 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_set_fsacl()
4698 assert(zhp->zfs_type == ZFS_TYPE_VOLUME || in zfs_set_fsacl()
4699 zhp->zfs_type == ZFS_TYPE_FILESYSTEM); in zfs_set_fsacl()
4713 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name)); in zfs_set_fsacl()
4743 zfs_get_holds(zfs_handle_t *zhp, nvlist_t **nvl) in zfs_get_holds() argument
4748 err = lzc_get_holds(zhp->zfs_name, nvl); in zfs_get_holds()
4751 libzfs_handle_t *hdl = zhp->zfs_hdl; in zfs_get_holds()
4755 zhp->zfs_name); in zfs_get_holds()