Changeset View
Changeset View
Standalone View
Standalone View
head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
Show First 20 Lines • Show All 1,283 Lines • ▼ Show 20 Lines | if (exclude || (sdd->filter_cb != NULL && | ||||
zfs_close(zhp); | zfs_close(zhp); | ||||
return (0); | return (0); | ||||
} | } | ||||
gather_holds(zhp, sdd); | gather_holds(zhp, sdd); | ||||
fromorigin = sdd->prevsnap[0] == '\0' && | fromorigin = sdd->prevsnap[0] == '\0' && | ||||
(sdd->fromorigin || sdd->replicate); | (sdd->fromorigin || sdd->replicate); | ||||
if (sdd->progress && sdd->dryrun) { | if (sdd->verbose || sdd->progress) { | ||||
(void) estimate_ioctl(zhp, sdd->prevsnap_obj, | (void) estimate_ioctl(zhp, sdd->prevsnap_obj, | ||||
fromorigin, flags, &size); | fromorigin, flags, &size); | ||||
sdd->size += size; | sdd->size += size; | ||||
} | |||||
if (sdd->verbose) { | |||||
send_print_verbose(fout, zhp->zfs_name, | send_print_verbose(fout, zhp->zfs_name, | ||||
sdd->prevsnap[0] ? sdd->prevsnap : NULL, | sdd->prevsnap[0] ? sdd->prevsnap : NULL, | ||||
size, sdd->parsable); | size, sdd->parsable); | ||||
} | } | ||||
if (!sdd->dryrun) { | if (!sdd->dryrun) { | ||||
/* | /* | ||||
* If progress reporting is requested, spawn a new thread to | * If progress reporting is requested, spawn a new thread to | ||||
▲ Show 20 Lines • Show All 351 Lines • ▼ Show 20 Lines | if (guid_to_name(hdl, toname, fromguid, B_TRUE, name) != 0) { | ||||
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, | zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, | ||||
"incremental source %#llx no longer exists"), | "incremental source %#llx no longer exists"), | ||||
(longlong_t)fromguid); | (longlong_t)fromguid); | ||||
return (zfs_error(hdl, EZFS_BADPATH, errbuf)); | return (zfs_error(hdl, EZFS_BADPATH, errbuf)); | ||||
} | } | ||||
fromname = name; | fromname = name; | ||||
} | } | ||||
if (flags->progress) { | if (flags->progress || flags->verbose) { | ||||
error = lzc_send_space(zhp->zfs_name, fromname, | error = lzc_send_space(zhp->zfs_name, fromname, | ||||
lzc_flags, &size); | lzc_flags, &size); | ||||
if (error == 0) | if (error == 0) | ||||
size = MAX(0, (int64_t)(size - bytes)); | size = MAX(0, (int64_t)(size - bytes)); | ||||
} | } | ||||
if (flags->verbose) { | if (flags->verbose) { | ||||
send_print_verbose(fout, zhp->zfs_name, fromname, | send_print_verbose(fout, zhp->zfs_name, fromname, | ||||
size, flags->parsable); | size, flags->parsable); | ||||
▲ Show 20 Lines • Show All 253 Lines • ▼ Show 20 Lines | if (sdd.cleanup_fd < 0) { | ||||
err = errno; | err = errno; | ||||
goto stderr_out; | goto stderr_out; | ||||
} | } | ||||
sdd.snapholds = fnvlist_alloc(); | sdd.snapholds = fnvlist_alloc(); | ||||
} else { | } else { | ||||
sdd.cleanup_fd = -1; | sdd.cleanup_fd = -1; | ||||
sdd.snapholds = NULL; | sdd.snapholds = NULL; | ||||
} | } | ||||
if (flags->progress || sdd.snapholds != NULL) { | if (flags->progress || flags->verbose || sdd.snapholds != NULL) { | ||||
/* | /* | ||||
* Do a verbose no-op dry run to get all the verbose output | * Do a verbose no-op dry run to get all the verbose output | ||||
* or to gather snapshot hold's before generating any data, | * or to gather snapshot hold's before generating any data, | ||||
* then do a non-verbose real run to generate the streams. | * then do a non-verbose real run to generate the streams. | ||||
*/ | */ | ||||
sdd.dryrun = B_TRUE; | sdd.dryrun = B_TRUE; | ||||
err = dump_filesystems(zhp, &sdd); | err = dump_filesystems(zhp, &sdd); | ||||
▲ Show 20 Lines • Show All 1,911 Lines • Show Last 20 Lines |