Author: mav
Date: Tue Jun 11 14:29:21 2019
New Revision: 348921
URL: https://svnweb.freebsd.org/changeset/base/348921

Log:
  MFC r348581: MFV r348580:
  9559 zfs diff handles files on delete queue in fromsnap poorly
  
  illumos/illumos-gate@20633e304b57bc98f70fdb194081b7023adf527b
  
  Reviewed by: Joshua M. Clulow <[email protected]>
  Approved by: Richard Lowe <[email protected]>
  Author:     Paul Dagnelie <[email protected]>

Modified:
  stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c
==============================================================================
--- stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c  Tue Jun 
11 14:28:16 2019        (r348920)
+++ stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c  Tue Jun 
11 14:29:21 2019        (r348921)
@@ -22,7 +22,7 @@
 /*
  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
- * Copyright (c) 2015, 2017 by Delphix. All rights reserved.
+ * Copyright (c) 2015, 2018 by Delphix. All rights reserved.
  * Copyright 2016 Joyent, Inc.
  * Copyright 2016 Igor Kozhukhov <[email protected]>
  */
@@ -47,7 +47,7 @@
 #include "libzfs_impl.h"
 
 #define        ZDIFF_SNAPDIR           "/.zfs/snapshot/"
-#define        ZDIFF_SHARESDIR         "/.zfs/shares/"
+#define        ZDIFF_SHARESDIR         "/.zfs/shares/"
 #define        ZDIFF_PREFIX            "zfs-diff-%d"
 
 #define        ZDIFF_ADDED     '+'
@@ -361,12 +361,12 @@ describe_free(FILE *fp, differ_info_t *di, uint64_t ob
 
        if (get_stats_for_obj(di, di->fromsnap, object, namebuf,
            maxlen, &sb) != 0) {
-               /* Let it slide, if in the delete queue on from side */
-               if (di->zerr == ENOENT && sb.zs_links == 0) {
-                       di->zerr = 0;
-                       return (0);
-               }
                return (-1);
+       }
+       /* Don't print if in the delete queue on from side */
+       if (di->zerr == ESTALE) {
+               di->zerr = 0;
+               return (0);
        }
 
        print_file(fp, di, ZDIFF_REMOVED, namebuf, &sb);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to