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) {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to