svn commit: r366490 - releng/12.2/cddl/contrib/opensolaris/lib/libzfs/common

Glen Barber gjb at FreeBSD.org
Tue Oct 6 15:17:42 UTC 2020


Author: gjb
Date: Tue Oct  6 15:17:41 2020
New Revision: 366490
URL: https://svnweb.freebsd.org/changeset/base/366490

Log:
  MFS12 r366180, r366341:
   r366180 (asomers):
    Fix resuming receive stream to dataset with mounted clone
  
   r366341 (asomers):
    Fix "zfs receive" of interrupted stream without "-F"
  
  Approved by:	re (kib)
  Sponsored by:	Rubicon Communications, LLC (netgate.com)

Modified:
  releng/12.2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
Directory Properties:
  releng/12.2/   (props changed)

Modified: releng/12.2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
==============================================================================
--- releng/12.2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c	Tue Oct  6 14:26:05 2020	(r366489)
+++ releng/12.2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c	Tue Oct  6 15:17:41 2020	(r366490)
@@ -3138,7 +3138,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const 
 	char prop_errbuf[1024];
 	const char *chopprefix;
 	boolean_t newfs = B_FALSE;
-	boolean_t stream_wantsnewfs;
+	boolean_t stream_wantsnewfs, stream_resumingnewfs;
 	uint64_t parent_snapguid = 0;
 	prop_changelist_t *clp = NULL;
 	nvlist_t *snapprops_nvlist = NULL;
@@ -3302,6 +3302,8 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const 
 	    DMU_BACKUP_FEATURE_RESUMING;
 	stream_wantsnewfs = (drrb->drr_fromguid == 0 ||
 	    (drrb->drr_flags & DRR_FLAG_CLONE) || originsnap) && !resuming;
+	stream_resumingnewfs = (drrb->drr_fromguid == 0 ||
+	    (drrb->drr_flags & DRR_FLAG_CLONE) || originsnap) && resuming;
 
 	if (stream_wantsnewfs) {
 		/*
@@ -3433,7 +3435,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const 
 		}
 
 		if (!flags->dryrun && zhp->zfs_type == ZFS_TYPE_FILESYSTEM &&
-		    (stream_wantsnewfs || resuming)) {
+		    (stream_wantsnewfs || stream_resumingnewfs)) {
 			/* We can't do online recv in this case */
 			clp = changelist_gather(zhp, ZFS_PROP_NAME, 0, 0);
 			if (clp == NULL) {


More information about the svn-src-all mailing list