Author: mav
Date: Mon Jun  3 20:40:32 2019
New Revision: 348581
URL: https://svnweb.freebsd.org/changeset/base/348581

Log:
  MFV r348580: 9559 zfs diff handles files on delete queue in fromsnap poorly
  
  illumos/illumos-gate@20633e304b57bc98f70fdb194081b7023adf527b
  
  Reviewed by: Joshua M. Clulow <j...@sysmgr.org>
  Approved by: Richard Lowe <richl...@richlowe.net>
  Author:     Paul Dagnelie <p...@delphix.com>

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

Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c       Mon Jun 
 3 20:39:13 2019        (r348580)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c       Mon Jun 
 3 20:40:32 2019        (r348581)
@@ -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 <ikozhuk...@gmail.com>
  */
@@ -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);
_______________________________________________
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