-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
mount and share it directly in zfs_receive_one(). This will make a filesystem be mounted as soon as it's been received, instead of waiting to the very end - which might take days. Signed-off-by: Turbo Fredriksson <[email protected]> Closes: openzfs#2673
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3068,6 +3068,11 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap, | |
} | ||
} | ||
|
||
if (clp) { | ||
err |= changelist_postfix(clp); | ||
changelist_free(clp); | ||
} | ||
|
||
/* | ||
* Mount the target filesystem (if created). Also mount any | ||
* children of the target filesystem if we did a replication | ||
|
@@ -3084,23 +3089,20 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap, | |
if (h->zfs_type == ZFS_TYPE_VOLUME) { | ||
*cp = '@'; | ||
} else if (newfs || stream_avl) { | ||
/* | ||
* Track the first/top of hierarchy fs, | ||
* for mounting and sharing later. | ||
*/ | ||
if (top_zfs && *top_zfs == NULL) | ||
*top_zfs = zfs_strdup(hdl, zc.zc_value); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
FransUrbo
via email
Author
Owner
|
||
/* mount and share received datasets */ | ||
clp = changelist_gather(h, ZFS_PROP_MOUNTPOINT, | ||
CL_GATHER_MOUNT_ALWAYS, | ||
0); | ||
if (clp) { | ||
err |= changelist_postfix(clp); | ||
changelist_free(clp); | ||
} | ||
} | ||
zfs_close(h); | ||
} | ||
*cp = '@'; | ||
} | ||
|
||
if (clp) { | ||
err |= changelist_postfix(clp); | ||
changelist_free(clp); | ||
} | ||
|
||
if (prop_errflags & ZPROP_ERR_NOCLEAR) { | ||
(void) fprintf(stderr, dgettext(TEXT_DOMAIN, "Warning: " | ||
"failed to clear unreceived properties on %s"), | ||
|
Regardless of whether we mount it immediately we should preserve the logic which tracks the first/top fs. I'm also not sure if this is entirely safe.