Lines Matching refs:sdd
898 gather_holds(zfs_handle_t *zhp, send_dump_data_t *sdd) in gather_holds() argument
906 if (sdd->snapholds == NULL) in gather_holds()
909 fnvlist_add_string(sdd->snapholds, zhp->zfs_name, sdd->holdtag); in gather_holds()
1151 send_dump_data_t *sdd = arg; in dump_snapshot() local
1159 FILE *fout = sdd->std_out ? stdout : stderr; in dump_snapshot()
1163 isfromsnap = (sdd->fromsnap != NULL && in dump_snapshot()
1164 strcmp(sdd->fromsnap, thissnap) == 0); in dump_snapshot()
1166 if (!sdd->seenfrom && isfromsnap) { in dump_snapshot()
1167 gather_holds(zhp, sdd); in dump_snapshot()
1168 sdd->seenfrom = B_TRUE; in dump_snapshot()
1169 (void) strlcpy(sdd->prevsnap, thissnap, sizeof (sdd->prevsnap)); in dump_snapshot()
1170 sdd->prevsnap_obj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID); in dump_snapshot()
1175 if (sdd->seento || !sdd->seenfrom) { in dump_snapshot()
1180 istosnap = (strcmp(sdd->tosnap, thissnap) == 0); in dump_snapshot()
1182 sdd->seento = B_TRUE; in dump_snapshot()
1184 if (sdd->large_block) in dump_snapshot()
1186 if (sdd->embed_data) in dump_snapshot()
1188 if (sdd->compress) in dump_snapshot()
1190 if (sdd->raw) in dump_snapshot()
1193 if (!sdd->doall && !isfromsnap && !istosnap) { in dump_snapshot()
1194 if (sdd->replicate) { in dump_snapshot()
1201 nvlist_t *nvfs = fsavl_find(sdd->fsavl, in dump_snapshot()
1221 if (exclude || (sdd->filter_cb != NULL && in dump_snapshot()
1222 sdd->filter_cb(zhp, sdd->filter_cb_arg) == B_FALSE)) { in dump_snapshot()
1235 gather_holds(zhp, sdd); in dump_snapshot()
1236 fromorigin = sdd->prevsnap[0] == '\0' && in dump_snapshot()
1237 (sdd->fromorigin || sdd->replicate); in dump_snapshot()
1239 if (sdd->verbosity != 0) { in dump_snapshot()
1243 if (sdd->prevsnap[0] != '\0') { in dump_snapshot()
1246 (void) strlcat(fromds, sdd->prevsnap, sizeof (fromds)); in dump_snapshot()
1249 sdd->prevsnap[0] ? fromds : NULL, flags, &size) == 0) { in dump_snapshot()
1251 sdd->prevsnap[0] ? sdd->prevsnap : NULL, in dump_snapshot()
1252 size, sdd->parsable); in dump_snapshot()
1253 sdd->size += size; in dump_snapshot()
1257 if (!sdd->dryrun) { in dump_snapshot()
1265 pa.pa_fd = sdd->outfd; in dump_snapshot()
1266 pa.pa_parsable = sdd->parsable; in dump_snapshot()
1268 pa.pa_verbosity = sdd->verbosity; in dump_snapshot()
1269 pa.pa_size = sdd->size; in dump_snapshot()
1270 pa.pa_astitle = sdd->progressastitle; in dump_snapshot()
1271 pa.pa_progress = sdd->progress; in dump_snapshot()
1281 err = dump_ioctl(zhp, sdd->prevsnap, sdd->prevsnap_obj, in dump_snapshot()
1282 fromorigin, sdd->outfd, flags, sdd->debugnv); in dump_snapshot()
1288 (void) strlcpy(sdd->prevsnap, thissnap, sizeof (sdd->prevsnap)); in dump_snapshot()
1289 sdd->prevsnap_obj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID); in dump_snapshot()
1298 dump_filesystem(zfs_handle_t *zhp, send_dump_data_t *sdd) in dump_filesystem() argument
1309 zhp->zfs_name, sdd->tosnap); in dump_filesystem()
1313 zhp->zfs_name, sdd->tosnap); in dump_filesystem()
1314 sdd->err = B_TRUE; in dump_filesystem()
1325 if (sdd->replicate && sdd->fromsnap) { in dump_filesystem()
1330 zhp->zfs_name, sdd->fromsnap); in dump_filesystem()
1335 sdd->seenfrom = sdd->seento = B_FALSE; in dump_filesystem()
1336 sdd->prevsnap[0] = '\0'; in dump_filesystem()
1337 sdd->prevsnap_obj = 0; in dump_filesystem()
1338 if (sdd->fromsnap == NULL || missingfrom) in dump_filesystem()
1339 sdd->seenfrom = B_TRUE; in dump_filesystem()
1346 if (sdd->doall || sdd->replicate || sdd->tosnap == NULL) { in dump_filesystem()
1347 if (!sdd->replicate) { in dump_filesystem()
1348 if (sdd->fromsnap != NULL) { in dump_filesystem()
1350 zhp->zfs_name, sdd->fromsnap); in dump_filesystem()
1352 if (sdd->tosnap != NULL) { in dump_filesystem()
1354 zhp->zfs_name, sdd->tosnap); in dump_filesystem()
1357 rv = zfs_iter_snapshots_sorted_v2(zhp, 0, dump_snapshot, sdd, in dump_filesystem()
1364 if (!sdd->seenfrom) { in dump_filesystem()
1366 "%s@%s", zhp->zfs_name, sdd->fromsnap); in dump_filesystem()
1370 rv = dump_snapshot(snap, sdd); in dump_filesystem()
1378 "%s@%s", zhp->zfs_name, sdd->tosnap); in dump_filesystem()
1382 rv = dump_snapshot(snap, sdd); in dump_filesystem()
1388 if (!sdd->seenfrom) { in dump_filesystem()
1392 zhp->zfs_name, sdd->tosnap, in dump_filesystem()
1393 zhp->zfs_name, sdd->fromsnap); in dump_filesystem()
1394 sdd->err = B_TRUE; in dump_filesystem()
1395 } else if (!sdd->seento) { in dump_filesystem()
1396 if (sdd->fromsnap) { in dump_filesystem()
1401 zhp->zfs_name, sdd->tosnap, in dump_filesystem()
1402 zhp->zfs_name, sdd->fromsnap); in dump_filesystem()
1407 zhp->zfs_name, sdd->tosnap); in dump_filesystem()
1409 sdd->err = B_TRUE; in dump_filesystem()
1419 dump_filesystems(zfs_handle_t *rzhp, send_dump_data_t *sdd) in dump_filesystems() argument
1424 if (!sdd->replicate) in dump_filesystems()
1425 return (dump_filesystem(rzhp, sdd)); in dump_filesystems()
1428 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair; in dump_filesystems()
1429 fspair = nvlist_next_nvpair(sdd->fss, fspair)) { in dump_filesystems()
1437 nvlist_t *origin_nv = fsavl_find(sdd->fsavl, in dump_filesystems()
1452 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair; in dump_filesystems()
1453 fspair = nvlist_next_nvpair(sdd->fss, fspair)) { in dump_filesystems()
1471 parent_nv = fsavl_find(sdd->fsavl, parent_guid, NULL); in dump_filesystems()
1480 nvlist_t *origin_nv = fsavl_find(sdd->fsavl, in dump_filesystems()
1496 err = dump_filesystem(zhp, sdd); in dump_filesystems()
1509 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair; in dump_filesystems()
1510 fspair = nvlist_next_nvpair(sdd->fss, fspair)) { in dump_filesystems()
2340 send_dump_data_t sdd = { 0 }; in zfs_send_cb_impl() local
2401 sdd.fromsnap = fromsnap; in zfs_send_cb_impl()
2402 sdd.tosnap = tosnap; in zfs_send_cb_impl()
2403 sdd.outfd = outfd; in zfs_send_cb_impl()
2404 sdd.replicate = flags->replicate; in zfs_send_cb_impl()
2405 sdd.doall = flags->doall; in zfs_send_cb_impl()
2406 sdd.fromorigin = flags->fromorigin; in zfs_send_cb_impl()
2407 sdd.fss = fss; in zfs_send_cb_impl()
2408 sdd.fsavl = fsavl; in zfs_send_cb_impl()
2409 sdd.verbosity = flags->verbosity; in zfs_send_cb_impl()
2410 sdd.parsable = flags->parsable; in zfs_send_cb_impl()
2411 sdd.progress = flags->progress; in zfs_send_cb_impl()
2412 sdd.progressastitle = flags->progressastitle; in zfs_send_cb_impl()
2413 sdd.dryrun = flags->dryrun; in zfs_send_cb_impl()
2414 sdd.large_block = flags->largeblock; in zfs_send_cb_impl()
2415 sdd.embed_data = flags->embed_data; in zfs_send_cb_impl()
2416 sdd.compress = flags->compress; in zfs_send_cb_impl()
2417 sdd.raw = flags->raw; in zfs_send_cb_impl()
2418 sdd.holds = flags->holds; in zfs_send_cb_impl()
2419 sdd.filter_cb = filter_func; in zfs_send_cb_impl()
2420 sdd.filter_cb_arg = cb_arg; in zfs_send_cb_impl()
2422 sdd.debugnv = *debugnvp; in zfs_send_cb_impl()
2423 if (sdd.verbosity != 0 && sdd.dryrun) in zfs_send_cb_impl()
2424 sdd.std_out = B_TRUE; in zfs_send_cb_impl()
2425 fout = sdd.std_out ? stdout : stderr; in zfs_send_cb_impl()
2439 (void) snprintf(sdd.holdtag, sizeof (sdd.holdtag), in zfs_send_cb_impl()
2441 sdd.cleanup_fd = open(ZFS_DEV, O_RDWR | O_CLOEXEC); in zfs_send_cb_impl()
2442 if (sdd.cleanup_fd < 0) { in zfs_send_cb_impl()
2446 sdd.snapholds = fnvlist_alloc(); in zfs_send_cb_impl()
2448 sdd.cleanup_fd = -1; in zfs_send_cb_impl()
2449 sdd.snapholds = NULL; in zfs_send_cb_impl()
2452 if (flags->verbosity != 0 || sdd.snapholds != NULL) { in zfs_send_cb_impl()
2458 sdd.dryrun = B_TRUE; in zfs_send_cb_impl()
2459 err = dump_filesystems(zhp, &sdd); in zfs_send_cb_impl()
2467 (longlong_t)sdd.size); in zfs_send_cb_impl()
2470 zfs_nicebytes(sdd.size, buf, sizeof (buf)); in zfs_send_cb_impl()
2477 if (!sdd.seento) { in zfs_send_cb_impl()
2486 if (sdd.snapholds != NULL) { in zfs_send_cb_impl()
2487 err = zfs_hold_nvl(zhp, sdd.cleanup_fd, sdd.snapholds); in zfs_send_cb_impl()
2491 fnvlist_free(sdd.snapholds); in zfs_send_cb_impl()
2492 sdd.snapholds = NULL; in zfs_send_cb_impl()
2495 sdd.dryrun = B_FALSE; in zfs_send_cb_impl()
2496 sdd.verbosity = 0; in zfs_send_cb_impl()
2499 err = dump_filesystems(zhp, &sdd); in zfs_send_cb_impl()
2504 if (err == 0 && !sdd.seento) in zfs_send_cb_impl()
2507 if (sdd.cleanup_fd != -1) { in zfs_send_cb_impl()
2508 VERIFY(0 == close(sdd.cleanup_fd)); in zfs_send_cb_impl()
2509 sdd.cleanup_fd = -1; in zfs_send_cb_impl()
2524 return (err || sdd.err); in zfs_send_cb_impl()
2531 fnvlist_free(sdd.snapholds); in zfs_send_cb_impl()
2533 if (sdd.cleanup_fd != -1) in zfs_send_cb_impl()
2534 VERIFY(0 == close(sdd.cleanup_fd)); in zfs_send_cb_impl()