Lines Matching defs:zhp
288 send_iterate_prop(zfs_handle_t *zhp, boolean_t received_only, nvlist_t *nv);
295 send_iterate_snap(zfs_handle_t *zhp, void *arg)
298 uint64_t guid = zhp->zfs_dmustats.dds_guid;
299 uint64_t txg = zhp->zfs_dmustats.dds_creation_txg;
305 snapname = strrchr(zhp->zfs_name, '@');
318 zhp->zfs_name, to);
320 zfs_close(zhp);
343 zfs_close(zhp);
348 zfs_close(zhp);
357 send_iterate_prop(zhp, sd->backup, nv);
363 if (lzc_get_holds(zhp->zfs_name, &holds) == 0) {
369 zfs_close(zhp);
377 send_iterate_prop(zfs_handle_t *zhp, boolean_t received_only, nvlist_t *nv)
382 props = zfs_get_recvd_props(zhp);
384 props = zhp->zfs_props;
413 if (isspacelimit && zhp->zfs_type == ZFS_TYPE_SNAPSHOT)
418 if (strcmp(source, zhp->zfs_name) != 0 &&
457 zfs_handle_t *zhp = zfs_open(hdl, name, ZFS_TYPE_SNAPSHOT);
458 if (zhp != NULL) {
459 guid = zfs_prop_get_int(zhp, ZFS_PROP_GUID);
460 zfs_close(zhp);
481 zfs_handle_t *zhp = zfs_open(hdl, name, ZFS_TYPE_SNAPSHOT);
482 if (zhp != NULL) {
483 txg = zfs_prop_get_int(zhp, ZFS_PROP_CREATETXG);
484 zfs_close(zhp);
497 send_iterate_fs(zfs_handle_t *zhp, void *arg)
503 uint64_t txg = zhp->zfs_dmustats.dds_creation_txg;
504 uint64_t guid = zhp->zfs_dmustats.dds_guid;
513 fromsnap_txg = get_snap_txg(zhp->zfs_hdl, zhp->zfs_name, sd->fromsnap);
517 tosnap_txg = get_snap_txg(zhp->zfs_hdl, zhp->zfs_name, sd->tosnap);
536 "not exist\n"), zhp->zfs_name, sd->tosnap);
542 zhp->zfs_name, sd->tosnap);
548 zhp->zfs_name, sd->tosnap);
555 fnvlist_add_string(nvfs, "name", zhp->zfs_name);
558 if (zhp->zfs_dmustats.dds_origin[0] != '\0') {
559 zfs_handle_t *origin = zfs_open(zhp->zfs_hdl,
560 zhp->zfs_dmustats.dds_origin, ZFS_TYPE_SNAPSHOT);
573 send_iterate_prop(zhp, sd->backup, nv);
576 if (zfs_prop_get_int(zhp, ZFS_PROP_ENCRYPTION) != ZIO_CRYPT_OFF) {
580 if (zfs_crypto_get_encryption_root(zhp, &encroot, NULL) != 0) {
598 sd->fsname, sd->tosnap, zhp->zfs_name);
623 (void) zfs_iter_snapshots_sorted_v2(zhp, 0, send_iterate_snap,
630 zhp->zfs_name, sd->tosnap);
633 snap = zfs_open(zhp->zfs_hdl, snapname, ZFS_TYPE_SNAPSHOT);
649 zhp->zfs_hdl->libzfs_max_nvlist) {
655 zhp->zfs_name, sd->tosnap);
666 rv = zfs_iter_filesystems_v2(zhp, 0, send_iterate_fs, sd);
677 zfs_close(zhp);
688 zfs_handle_t *zhp;
692 zhp = zfs_open(hdl, fsname, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME);
693 if (zhp == NULL)
710 if ((error = send_iterate_fs(zhp, &sd)) != 0) {
756 zfs_send_space(zfs_handle_t *zhp, const char *snapname, const char *from,
769 libzfs_handle_t *hdl = zhp->zfs_hdl;
810 dump_ioctl(zfs_handle_t *zhp, const char *fromsnap, uint64_t fromsnap_obj,
815 libzfs_handle_t *hdl = zhp->zfs_hdl;
818 assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT);
821 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name));
824 zc.zc_sendobj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID);
834 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_SEND, &zc) != 0) {
840 zhp->zfs_name);
844 fnvlist_add_nvlist(debugnv, zhp->zfs_name, thisdbg);
889 fnvlist_add_nvlist(debugnv, zhp->zfs_name, thisdbg);
897 gather_holds(zfs_handle_t *zhp, send_dump_data_t *sdd)
899 assert(zhp->zfs_type == ZFS_TYPE_SNAPSHOT);
908 fnvlist_add_string(sdd->snapholds, zhp->zfs_name, sdd->holdtag);
912 zfs_send_progress(zfs_handle_t *zhp, int fd, uint64_t *bytes_written,
921 (void) strlcpy(zc.zc_name, zhp->zfs_name, sizeof (zc.zc_name));
923 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_SEND_PROGRESS, &zc) != 0)
969 zfs_handle_t *zhp = pa->pa_zhp;
1003 zhp->zfs_name);
1011 if ((err = zfs_send_progress(zhp, pa->pa_fd, &bytes,
1029 zhp->zfs_name, MIN(pct, 100), buf_bytes, buf_size);
1037 zhp->zfs_name);
1043 buf, (u_longlong_t)blocks, zhp->zfs_name);
1047 (u_longlong_t)bytes, zhp->zfs_name);
1053 buf, zhp->zfs_name);
1148 dump_snapshot(zfs_handle_t *zhp, void *arg)
1161 thissnap = strchr(zhp->zfs_name, '@') + 1;
1166 gather_holds(zhp, sdd);
1169 sdd->prevsnap_obj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID);
1170 zfs_close(zhp);
1175 zfs_close(zhp);
1201 zhp->zfs_dmustats.dds_guid, &snapname);
1221 sdd->filter_cb(zhp, sdd->filter_cb_arg) == B_FALSE)) {
1230 zfs_close(zhp);
1234 gather_holds(zhp, sdd);
1243 (void) strlcpy(fromds, zhp->zfs_name, sizeof (fromds));
1247 if (zfs_send_space(zhp, zhp->zfs_name,
1249 send_print_verbose(fout, zhp->zfs_name,
1263 pa.pa_zhp = zhp;
1274 zfs_close(zhp);
1280 err = dump_ioctl(zhp, sdd->prevsnap, sdd->prevsnap_obj,
1283 if (send_progress_thread_exit(zhp->zfs_hdl, tid, &oldmask))
1288 sdd->prevsnap_obj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID);
1289 zfs_close(zhp);
1297 dump_filesystem(zfs_handle_t *zhp, send_dump_data_t *sdd)
1308 zhp->zfs_name, sdd->tosnap);
1309 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_OBJSET_STATS, &zc) != 0) {
1312 zhp->zfs_name, sdd->tosnap);
1329 zhp->zfs_name, sdd->fromsnap);
1330 if (zfs_ioctl(zhp->zfs_hdl, ZFS_IOC_OBJSET_STATS, &zc) != 0)
1348 min_txg = get_snap_txg(zhp->zfs_hdl,
1349 zhp->zfs_name, sdd->fromsnap);
1352 max_txg = get_snap_txg(zhp->zfs_hdl,
1353 zhp->zfs_name, sdd->tosnap);
1356 rv = zfs_iter_snapshots_sorted_v2(zhp, 0, dump_snapshot, sdd,
1365 "%s@%s", zhp->zfs_name, sdd->fromsnap);
1366 snap = zfs_open(zhp->zfs_hdl, snapname,
1377 "%s@%s", zhp->zfs_name, sdd->tosnap);
1378 snap = zfs_open(zhp->zfs_hdl, snapname,
1391 zhp->zfs_name, sdd->tosnap,
1392 zhp->zfs_name, sdd->fromsnap);
1400 zhp->zfs_name, sdd->tosnap,
1401 zhp->zfs_name, sdd->fromsnap);
1406 zhp->zfs_name, sdd->tosnap);
1455 zfs_handle_t *zhp;
1492 zhp = zfs_open(rzhp->zfs_hdl, fsname, ZFS_TYPE_DATASET);
1493 if (zhp == NULL)
1495 err = dump_filesystem(zhp, sdd);
1498 zfs_close(zhp);
1616 estimate_size(zfs_handle_t *zhp, const char *from, int fd, sendflags_t *flags,
1628 pa.pa_zhp = zhp;
1637 zfs_error_aux(zhp->zfs_hdl, "%s", zfs_strerror(errno));
1638 return (zfs_error(zhp->zfs_hdl,
1644 err = lzc_send_space_resume_redacted(zhp->zfs_name, from,
1649 if (send_progress_thread_exit(zhp->zfs_hdl, ptid, &oldmask))
1656 zfs_error_aux(zhp->zfs_hdl, "%s", zfs_strerror(err));
1657 return (zfs_error(zhp->zfs_hdl, EZFS_BADBACKUP,
1660 send_print_verbose(fout, zhp->zfs_name, from, size,
1824 zfs_handle_t *zhp;
1872 zhp = zfs_open(hdl, name, ZFS_TYPE_DATASET);
1873 if (zhp == NULL) {
1933 error = estimate_size(zhp, fromname, outfd, &tmpflags,
1946 pa.pa_zhp = zhp;
1960 zfs_close(zhp);
1966 error = lzc_send_resume_redacted(zhp->zfs_name, fromname, outfd,
1972 zfs_close(zhp);
1978 "warning: cannot send '%s'"), zhp->zfs_name);
1980 zfs_close(zhp);
1990 if (lzc_exists(zhp->zfs_name)) {
2020 zfs_close(zhp);
2078 zfs_send_saved(zfs_handle_t *zhp, sendflags_t *flags, int outfd,
2082 libzfs_handle_t *hdl = zhp->zfs_hdl;
2092 ret = zfs_prop_get(zhp, ZFS_PROP_RECEIVE_RESUME_TOKEN,
2157 fnvlist_add_string(saved_nvl, "toname", zhp->zfs_name);
2191 * The "zhp" argument is the handle of the snapshot we are sending
2196 send_prelim_records(zfs_handle_t *zhp, const char *from, int fd,
2214 "warning: cannot send '%s'"), zhp->zfs_name);
2215 if (zhp->zfs_type == ZFS_TYPE_FILESYSTEM && zfs_prop_get_int(zhp,
2223 (void) strlcpy(tofs, zhp->zfs_name, ZFS_MAX_DATASET_NAME_LEN);
2244 if (gather_nvlist(zhp->zfs_hdl, tofs,
2247 return (zfs_error(zhp->zfs_hdl, EZFS_BADBACKUP,
2255 zhp->zfs_hdl->libzfs_max_nvlist) {
2261 zhp->zfs_name);
2262 return (zfs_error(zhp->zfs_hdl, EZFS_NOSPC,
2289 return (zfs_error(zhp->zfs_hdl, EZFS_BADBACKUP,
2297 zfs_error_aux(zhp->zfs_hdl, "%s", zfs_strerror(err));
2298 return (zfs_error(zhp->zfs_hdl, EZFS_BADBACKUP,
2303 zfs_error_aux(zhp->zfs_hdl, "%s", zfs_strerror(err));
2304 return (zfs_error(zhp->zfs_hdl, EZFS_BADBACKUP,
2312 * Generate a send stream. The "zhp" argument is the filesystem/volume
2321 * - from the origin of the dataset identified by zhp, which must
2334 zfs_send_cb_impl(zfs_handle_t *zhp, const char *fromsnap, const char *tosnap,
2348 "cannot send '%s'"), zhp->zfs_name);
2351 zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN,
2353 return (zfs_error(zhp->zfs_hdl, EZFS_NOENT, errbuf));
2359 "%s@%s", zhp->zfs_name, fromsnap) >=
2364 zfs_handle_t *fromsnapn = zfs_open(zhp->zfs_hdl,
2377 "%s@%s", zhp->zfs_name, tosnap) >=
2382 zfs_handle_t *tosnap = zfs_open(zhp->zfs_hdl,
2432 if (!flags->dryrun && !zpool_get_prop_int(zfs_get_pool_handle(zhp),
2434 zfs_spa_version(zhp, &spa_version) == 0 &&
2458 err = dump_filesystems(zhp, &sdd);
2486 err = zfs_hold_nvl(zhp, sdd.cleanup_fd, sdd.snapholds);
2498 err = dump_filesystems(zhp, &sdd);
2520 return (zfs_standard_error(zhp->zfs_hdl, err2, errbuf));
2526 err = zfs_standard_error(zhp->zfs_hdl, err, errbuf);
2538 zfs_handle_t *zhp;
2551 return (zfs_send_cb_impl(zs->zhp, zs->fromsnap, zs->tosnap, zs->flags,
2556 zfs_send(zfs_handle_t *zhp, const char *fromsnap, const char *tosnap,
2561 .zhp = zhp,
2646 * The "zhp" argument is the handle of the dataset to send (typically a
2653 zfs_send_one_cb_impl(zfs_handle_t *zhp, const char *from, int fd,
2657 libzfs_handle_t *hdl = zhp->zfs_hdl;
2658 char *name = zhp->zfs_name;
2672 if (!snapshot_is_before(from_zhp, zhp)) {
2733 err = send_prelim_records(zhp, NULL, fd, B_TRUE, B_FALSE,
2745 err = estimate_size(zhp, from, fd, flags, 0, 0, 0, redactbook,
2760 pa.pa_zhp = zhp;
2772 zfs_error_aux(zhp->zfs_hdl, "%s", zfs_strerror(errno));
2773 return (zfs_error(zhp->zfs_hdl,
2846 zfs_handle_t *zhp;
2856 return (zfs_send_one_cb_impl(zso->zhp, zso->from, fd, zso->flags,
2861 zfs_send_one(zfs_handle_t *zhp, const char *from, int fd, sendflags_t *flags,
2865 .zhp = zhp,
2944 recv_open_grand_origin(zfs_handle_t *zhp)
2948 zfs_handle_t *ozhp = zfs_handle_dup(zhp);
2956 ozhp = zfs_open(zhp->zfs_hdl, origin, ZFS_TYPE_FILESYSTEM);
2963 recv_rename_impl(zfs_handle_t *zhp, const char *name, const char *newname)
2975 ozhp = recv_open_grand_origin(zhp);
3002 zfs_handle_t *zhp = NULL;
3004 zhp = zfs_open(hdl, name, ZFS_TYPE_DATASET);
3005 if (zhp == NULL) {
3009 clp = changelist_gather(zhp, ZFS_PROP_NAME, 0,
3025 err = recv_rename_impl(zhp, name, newname);
3042 err = recv_rename_impl(zhp, name, newname);
3062 if (zhp != NULL)
3063 zfs_close(zhp);
3074 zfs_handle_t *zhp = NULL, *ozhp = NULL;
3089 zhp = zfs_open(hdl, fsname, ZFS_TYPE_DATASET);
3090 if (zhp == NULL) {
3095 ozhp = recv_open_grand_origin(zhp);
3110 if (zhp != NULL)
3111 zfs_close(zhp);
3124 zfs_handle_t *zhp;
3128 zhp = zfs_open(hdl, name, ZFS_TYPE_DATASET);
3129 if (zhp == NULL)
3131 zfs_type_t type = zfs_get_type(zhp);
3133 zfs_spa_version(zhp, &spa_version) == 0 &&
3136 clp = changelist_gather(zhp, ZFS_PROP_NAME, 0,
3138 zfs_close(zhp);
3187 redact_snaps_match(zfs_handle_t *zhp, guid_to_name_data_t *gtnd)
3192 if (zhp->zfs_type != ZFS_TYPE_BOOKMARK)
3195 nvl = fnvlist_lookup_nvlist(zhp->zfs_props,
3215 guid_to_name_cb(zfs_handle_t *zhp, void *arg)
3222 (slash = strrchr(zhp->zfs_name, '/')) != NULL &&
3224 zfs_close(zhp);
3228 if (zfs_prop_get_int(zhp, ZFS_PROP_GUID) == gtnd->guid &&
3229 (gtnd->num_redact_snaps == -1 || redact_snaps_match(zhp, gtnd))) {
3230 (void) strcpy(gtnd->name, zhp->zfs_name);
3231 zfs_close(zhp);
3235 err = zfs_iter_children_v2(zhp, 0, guid_to_name_cb, gtnd);
3237 err = zfs_iter_bookmarks_v2(zhp, 0, guid_to_name_cb, gtnd);
3238 zfs_close(zhp);
3285 zfs_handle_t *zhp = make_dataset_handle(hdl, pname);
3287 if (zhp == NULL)
3289 int err = guid_to_name_cb(zfs_handle_dup(zhp), >nd);
3291 err = zfs_iter_children_v2(zhp, 0, guid_to_name_cb,
3294 err = zfs_iter_bookmarks_v2(zhp, 0, guid_to_name_cb,
3296 zfs_close(zhp);
3388 zfs_handle_t *zhp = NULL;
3423 zhp = zfs_open(hdl, fsname, ZFS_TYPE_DATASET);
3424 if (zhp == NULL) {
3429 crypt = zfs_prop_get_int(zhp, ZFS_PROP_ENCRYPTION);
3430 is_clone = zhp->zfs_dmustats.dds_origin[0] != '\0';
3431 (void) zfs_crypto_get_encryption_root(zhp, &is_encroot, NULL);
3435 zfs_close(zhp);
3449 zfs_close(zhp);
3461 zfs_refresh_properties(zhp);
3462 err = zfs_prop_get(zhp, ZFS_PROP_KEYLOCATION,
3466 zfs_close(zhp);
3471 err = zfs_prop_set(zhp,
3475 zfs_close(zhp);
3492 zfs_close(zhp);
3497 zfs_close(zhp);
3935 zfs_handle_t *zhp;
3938 zhp = zfs_open(hdl, nvpair_name(pair),
3940 if (zhp != NULL) {
3941 clp = changelist_gather(zhp,
3944 zfs_close(zhp);
4147 zfs_handle_t *zhp = zfs_open(hdl, target_fs,
4149 if (zhp == NULL)
4153 int error = zfs_prop_get(zhp, ZFS_PROP_RECEIVE_RESUME_TOKEN,
4165 zfs_close(zhp);
4186 zfs_handle_t *zhp = NULL;
4204 zhp = zfs_open(hdl, namebuf, ZFS_TYPE_DATASET);
4205 if (zhp == NULL) {
4358 oprops, zoned, zhp, zpool_hdl, B_FALSE, errbuf)) == NULL) {
4392 if (zhp != NULL)
4393 zfs_close(zhp);
4738 zfs_handle_t *zhp = NULL;
4789 if ((zhp = zfs_open(hdl, name,
4812 !zfs_prop_get_int(zhp, ZFS_PROP_INCONSISTENT) &&
4814 zfs_close(zhp);
4823 zhp->zfs_dmustats.dds_origin[0]) {
4824 zfs_close(zhp);
4842 encrypted = zfs_prop_get_int(zhp, ZFS_PROP_ENCRYPTION) !=
4845 zfs_close(zhp);
4855 zfs_close(zhp);
4864 if (!flags->dryrun && zhp->zfs_type == ZFS_TYPE_FILESYSTEM &&
4867 clp = changelist_gather(zhp, ZFS_PROP_NAME, 0,
4870 zfs_close(zhp);
4876 zfs_close(zhp);
4890 if (resuming && zfs_prop_get_int(zhp, ZFS_PROP_INCONSISTENT))
4894 zoned = zfs_prop_get_int(zhp, ZFS_PROP_ZONED);
4896 /* may need this info later, get it now we have zhp around */
4897 if (zfs_prop_get(zhp, ZFS_PROP_RECEIVE_RESUME_TOKEN, NULL, 0,
4903 fnvlist_merge(origprops, zhp->zfs_props);
4904 fnvlist_merge(origprops, zhp->zfs_user_props);
4906 zfs_close(zhp);
4908 zfs_handle_t *zhp;
4939 zhp = zfs_open(hdl, name, ZFS_TYPE_DATASET);
4940 if (zhp == NULL) {
4944 if (zfs_get_type(zhp) != ZFS_TYPE_FILESYSTEM) {
4948 zfs_close(zhp);
4952 zfs_close(zhp);
5598 zfs_handle_t *zhp = NULL;
5601 zhp = zfs_open(hdl, top_zfs,
5603 if (zhp == NULL) {
5607 if (zhp->zfs_type == ZFS_TYPE_VOLUME) {
5608 zfs_close(zhp);
5612 clp = changelist_gather(zhp, ZFS_PROP_MOUNTPOINT,
5615 zfs_close(zhp);