Lines Matching defs:sdd

1029 gather_holds(zfs_handle_t *zhp, send_dump_data_t *sdd)
1037 if (sdd->snapholds == NULL)
1040 fnvlist_add_string(sdd->snapholds, zhp->zfs_name, sdd->holdtag);
1135 send_dump_data_t *sdd = arg;
1142 FILE *fout = sdd->std_out ? stdout : stderr;
1146 isfromsnap = (sdd->fromsnap != NULL &&
1147 strcmp(sdd->fromsnap, thissnap) == 0);
1149 if (!sdd->seenfrom && isfromsnap) {
1150 gather_holds(zhp, sdd);
1151 sdd->seenfrom = B_TRUE;
1152 (void) strcpy(sdd->prevsnap, thissnap);
1153 sdd->prevsnap_obj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID);
1158 if (sdd->seento || !sdd->seenfrom) {
1163 istosnap = (strcmp(sdd->tosnap, thissnap) == 0);
1165 sdd->seento = B_TRUE;
1167 if (!sdd->doall && !isfromsnap && !istosnap) {
1168 if (sdd->replicate) {
1175 nvlist_t *nvfs = fsavl_find(sdd->fsavl,
1192 if (exclude || (sdd->filter_cb != NULL &&
1193 sdd->filter_cb(zhp, sdd->filter_cb_arg) == B_FALSE)) {
1206 gather_holds(zhp, sdd);
1207 fromorigin = sdd->prevsnap[0] == '\0' &&
1208 (sdd->fromorigin || sdd->replicate);
1210 if (sdd->verbose) {
1212 (void) estimate_ioctl(zhp, sdd->prevsnap_obj,
1216 sdd->prevsnap[0] ? sdd->prevsnap : NULL,
1217 size, sdd->parsable);
1218 sdd->size += size;
1221 if (!sdd->dryrun) {
1226 if (sdd->progress) {
1228 pa.pa_fd = sdd->outfd;
1229 pa.pa_parsable = sdd->parsable;
1239 if (sdd->large_block)
1241 if (sdd->embed_data)
1244 err = dump_ioctl(zhp, sdd->prevsnap, sdd->prevsnap_obj,
1245 fromorigin, sdd->outfd, flags, sdd->debugnv);
1247 if (sdd->progress) {
1253 (void) strcpy(sdd->prevsnap, thissnap);
1254 sdd->prevsnap_obj = zfs_prop_get_int(zhp, ZFS_PROP_OBJSETID);
1263 send_dump_data_t *sdd = arg;
1268 zhp->zfs_name, sdd->tosnap);
1272 zhp->zfs_name, sdd->tosnap);
1273 sdd->err = B_TRUE;
1277 if (sdd->replicate && sdd->fromsnap) {
1286 zhp->zfs_name, sdd->fromsnap);
1293 sdd->seenfrom = sdd->seento = sdd->prevsnap[0] = 0;
1294 sdd->prevsnap_obj = 0;
1295 if (sdd->fromsnap == NULL || missingfrom)
1296 sdd->seenfrom = B_TRUE;
1299 if (!sdd->seenfrom) {
1303 zhp->zfs_name, sdd->tosnap,
1304 zhp->zfs_name, sdd->fromsnap);
1305 sdd->err = B_TRUE;
1306 } else if (!sdd->seento) {
1307 if (sdd->fromsnap) {
1312 zhp->zfs_name, sdd->tosnap,
1313 zhp->zfs_name, sdd->fromsnap);
1318 zhp->zfs_name, sdd->tosnap);
1320 sdd->err = B_TRUE;
1329 send_dump_data_t *sdd = arg;
1333 if (!sdd->replicate)
1334 return (dump_filesystem(rzhp, sdd));
1337 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair;
1338 fspair = nvlist_next_nvpair(sdd->fss, fspair)) {
1346 nvlist_t *origin_nv = fsavl_find(sdd->fsavl,
1361 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair;
1362 fspair = nvlist_next_nvpair(sdd->fss, fspair)) {
1380 parent_nv = fsavl_find(sdd->fsavl, parent_guid, NULL);
1389 nvlist_t *origin_nv = fsavl_find(sdd->fsavl,
1405 err = dump_filesystem(zhp, sdd);
1418 for (fspair = nvlist_next_nvpair(sdd->fss, NULL); fspair;
1419 fspair = nvlist_next_nvpair(sdd->fss, fspair)) {
1676 send_dump_data_t sdd = { 0 };
1793 sdd.fromsnap = fromsnap;
1794 sdd.tosnap = tosnap;
1796 sdd.outfd = pipefd[0];
1798 sdd.outfd = outfd;
1799 sdd.replicate = flags->replicate;
1800 sdd.doall = flags->doall;
1801 sdd.fromorigin = flags->fromorigin;
1802 sdd.fss = fss;
1803 sdd.fsavl = fsavl;
1804 sdd.verbose = flags->verbose;
1805 sdd.parsable = flags->parsable;
1806 sdd.progress = flags->progress;
1807 sdd.dryrun = flags->dryrun;
1808 sdd.large_block = flags->largeblock;
1809 sdd.embed_data = flags->embed_data;
1810 sdd.filter_cb = filter_func;
1811 sdd.filter_cb_arg = cb_arg;
1813 sdd.debugnv = *debugnvp;
1814 if (sdd.verbose && sdd.dryrun)
1815 sdd.std_out = B_TRUE;
1816 fout = sdd.std_out ? stdout : stderr;
1830 (void) snprintf(sdd.holdtag, sizeof (sdd.holdtag),
1832 sdd.cleanup_fd = open(ZFS_DEV, O_RDWR|O_EXCL);
1833 if (sdd.cleanup_fd < 0) {
1837 sdd.snapholds = fnvlist_alloc();
1839 sdd.cleanup_fd = -1;
1840 sdd.snapholds = NULL;
1842 if (flags->verbose || sdd.snapholds != NULL) {
1848 sdd.dryrun = B_TRUE;
1849 err = dump_filesystems(zhp, &sdd);
1857 (longlong_t)sdd.size);
1860 zfs_nicenum(sdd.size, buf, sizeof (buf));
1867 if (!sdd.seento) {
1876 if (sdd.snapholds != NULL) {
1877 err = zfs_hold_nvl(zhp, sdd.cleanup_fd, sdd.snapholds);
1881 fnvlist_free(sdd.snapholds);
1882 sdd.snapholds = NULL;
1885 sdd.dryrun = B_FALSE;
1886 sdd.verbose = B_FALSE;
1889 err = dump_filesystems(zhp, &sdd);
1894 if (err == 0 && !sdd.seento)
1904 if (sdd.cleanup_fd != -1) {
1905 VERIFY(0 == close(sdd.cleanup_fd));
1906 sdd.cleanup_fd = -1;
1924 return (err || sdd.err);
1931 fnvlist_free(sdd.snapholds);
1933 if (sdd.cleanup_fd != -1)
1934 VERIFY(0 == close(sdd.cleanup_fd));