Lines Matching defs:sdd

1089 gather_holds(zfs_handle_t *zhp, send_dump_data_t *sdd)
1097 if (sdd->snapholds == NULL)
1100 fnvlist_add_string(sdd->snapholds, zhp->zfs_name, sdd->holdtag);
1202 send_dump_data_t *sdd = arg;
1210 FILE *fout = sdd->std_out ? stdout : stderr;
1214 isfromsnap = (sdd->fromsnap != NULL &&
1215 strcmp(sdd->fromsnap, thissnap) == 0);
1217 if (!sdd->seenfrom && isfromsnap) {
1218 gather_holds(zhp, sdd);
1219 sdd->seenfrom = B_TRUE;
1220 (void) strcpy(sdd->prevsnap, thissnap);
1221 sdd->prevsnap_obj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID);
1226 if (sdd->seento || !sdd->seenfrom) {
1231 istosnap = (strcmp(sdd->tosnap, thissnap) == 0);
1233 sdd->seento = B_TRUE;
1235 if (sdd->large_block)
1237 if (sdd->embed_data)
1239 if (sdd->compress)
1242 if (!sdd->doall && !isfromsnap && !istosnap) {
1243 if (sdd->replicate) {
1250 nvlist_t *nvfs = fsavl_find(sdd->fsavl,
1267 if (exclude || (sdd->filter_cb != NULL &&
1268 sdd->filter_cb(zhp, sdd->filter_cb_arg) == B_FALSE)) {
1281 gather_holds(zhp, sdd);
1282 fromorigin = sdd->prevsnap[0] == '\0' &&
1283 (sdd->fromorigin || sdd->replicate);
1285 if (sdd->verbose || sdd->progress) {
1289 if (sdd->prevsnap[0] != '\0') {
1292 (void) strlcat(fromds, sdd->prevsnap, sizeof (fromds));
1295 sdd->prevsnap[0] ? fromds : NULL, flags, &size) != 0) {
1299 sdd->prevsnap[0] ? sdd->prevsnap : NULL,
1300 size, sdd->parsable);
1302 sdd->size += size;
1305 if (!sdd->dryrun) {
1310 if (sdd->progress) {
1312 pa.pa_fd = sdd->outfd;
1313 pa.pa_parsable = sdd->parsable;
1314 pa.pa_size = sdd->size;
1315 pa.pa_astitle = sdd->progressastitle;
1324 err = dump_ioctl(zhp, sdd->prevsnap, sdd->prevsnap_obj,
1325 fromorigin, sdd->outfd, flags, sdd->debugnv);
1327 if (sdd->progress) {
1333 (void) strcpy(sdd->prevsnap, thissnap);
1334 sdd->prevsnap_obj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID);
1343 send_dump_data_t *sdd = arg;
1348 zhp->zfs_name, sdd->tosnap);
1352 zhp->zfs_name, sdd->tosnap);
1353 sdd->err = B_TRUE;
1357 if (sdd->replicate && sdd->fromsnap) {
1366 zhp->zfs_name, sdd->fromsnap);
1373 sdd->seenfrom = sdd->seento = sdd->prevsnap[0] = 0;
1374 sdd->prevsnap_obj = 0;
1375 if (sdd->fromsnap == NULL || missingfrom)
1376 sdd->seenfrom = B_TRUE;
1379 if (!sdd->seenfrom) {
1383 zhp->zfs_name, sdd->tosnap,
1384 zhp->zfs_name, sdd->fromsnap);
1385 sdd->err = B_TRUE;
1386 } else if (!sdd->seento) {
1387 if (sdd->fromsnap) {
1392 zhp->zfs_name, sdd->tosnap,
1393 zhp->zfs_name, sdd->fromsnap);
1398 zhp->zfs_name, sdd->tosnap);
1400 sdd->err = B_TRUE;
1409 send_dump_data_t *sdd = arg;
1413 if (!sdd->replicate)
1414 return (dump_filesystem(rzhp, sdd));
1417 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair;
1418 fspair = nvlist_next_nvpair(sdd->fss, fspair)) {
1426 nvlist_t *origin_nv = fsavl_find(sdd->fsavl,
1441 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair;
1442 fspair = nvlist_next_nvpair(sdd->fss, fspair)) {
1460 parent_nv = fsavl_find(sdd->fsavl, parent_guid, NULL);
1469 nvlist_t *origin_nv = fsavl_find(sdd->fsavl,
1485 err = dump_filesystem(zhp, sdd);
1498 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair;
1499 fspair = nvlist_next_nvpair(sdd->fss, fspair)) {
1768 send_dump_data_t sdd = { 0 };
1886 sdd.fromsnap = fromsnap;
1887 sdd.tosnap = tosnap;
1889 sdd.outfd = pipefd[0];
1891 sdd.outfd = outfd;
1892 sdd.replicate = flags->replicate;
1893 sdd.doall = flags->doall;
1894 sdd.fromorigin = flags->fromorigin;
1895 sdd.fss = fss;
1896 sdd.fsavl = fsavl;
1897 sdd.verbose = flags->verbose;
1898 sdd.parsable = flags->parsable;
1899 sdd.progress = flags->progress;
1900 sdd.progressastitle = flags->progressastitle;
1901 sdd.dryrun = flags->dryrun;
1902 sdd.large_block = flags->largeblock;
1903 sdd.embed_data = flags->embed_data;
1904 sdd.compress = flags->compress;
1905 sdd.filter_cb = filter_func;
1906 sdd.filter_cb_arg = cb_arg;
1908 sdd.debugnv = *debugnvp;
1909 if (sdd.verbose && sdd.dryrun)
1910 sdd.std_out = B_TRUE;
1911 fout = sdd.std_out ? stdout : stderr;
1925 (void) snprintf(sdd.holdtag, sizeof (sdd.holdtag),
1927 sdd.cleanup_fd = open(ZFS_DEV, O_RDWR|O_EXCL);
1928 if (sdd.cleanup_fd < 0) {
1932 sdd.snapholds = fnvlist_alloc();
1934 sdd.cleanup_fd = -1;
1935 sdd.snapholds = NULL;
1937 if (flags->progress || flags->verbose || sdd.snapholds != NULL) {
1943 sdd.dryrun = B_TRUE;
1944 err = dump_filesystems(zhp, &sdd);
1952 (longlong_t)sdd.size);
1955 zfs_nicenum(sdd.size, buf, sizeof (buf));
1962 if (!sdd.seento) {
1971 if (sdd.snapholds != NULL) {
1972 err = zfs_hold_nvl(zhp, sdd.cleanup_fd, sdd.snapholds);
1976 fnvlist_free(sdd.snapholds);
1977 sdd.snapholds = NULL;
1980 sdd.dryrun = B_FALSE;
1981 sdd.verbose = B_FALSE;
1984 err = dump_filesystems(zhp, &sdd);
1989 if (err == 0 && !sdd.seento)
1999 if (sdd.cleanup_fd != -1) {
2000 VERIFY(0 == close(sdd.cleanup_fd));
2001 sdd.cleanup_fd = -1;
2019 return (err || sdd.err);
2026 fnvlist_free(sdd.snapholds);
2028 if (sdd.cleanup_fd != -1)
2029 VERIFY(0 == close(sdd.cleanup_fd));