Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
2674: turbo/issue-2673 - Mount filesystem as soon as it's been received
Browse files Browse the repository at this point in the history
Instead of storing the filesystem just received in top_zfs,
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
FransUrbo committed Apr 21, 2015
1 parent fef66e6 commit baf4ba2
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions lib/libzfs/libzfs_sendrecv.c
Original file line number Diff line number Diff line change
@@ -3123,6 +3123,9 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap,
}
}

if (clp)
err |= changelist_postfix(clp);

/*
* Mount the target filesystem (if created). Also mount any
* children of the target filesystem if we did a replication
@@ -3139,22 +3142,24 @@ 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.
*/
/* Track the first/top of hierarchy fs */
if (top_zfs && *top_zfs == NULL)
*top_zfs = zfs_strdup(hdl, zc.zc_value);

/* mount and share received datasets */
clp = changelist_gather(h, ZFS_PROP_MOUNTPOINT,
CL_GATHER_MOUNT_ALWAYS,
0);
if (clp)
err |= changelist_postfix(clp);
}
zfs_close(h);
}
*cp = '@';
}

if (clp) {
err |= changelist_postfix(clp);
if (clp)
changelist_free(clp);
}

if (prop_errflags & ZPROP_ERR_NOCLEAR) {
(void) fprintf(stderr, dgettext(TEXT_DOMAIN, "Warning: "

0 comments on commit baf4ba2

Please sign in to comment.