]> git.proxmox.com Git - mirror_zfs.git/commitdiff
OpenZFS 9559 - zfs diff handles files on delete queue in fromsnap poorly
authorPaul Dagnelie <pcd@delphix.com>
Thu, 24 May 2018 20:38:47 +0000 (13:38 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 14 Dec 2018 17:50:49 +0000 (09:50 -0800)
Authored by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Joshua M. Clulow <josh@sysmgr.org>
Reviewed by: Tom Caputi <tcaputi@datto.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
OpenZFS-issue: https://www.illumos.org/issues/9559
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/d7e45412
Closes #8211

lib/libzfs/libzfs_diff.c

index fb7a1fcf4196ee1e839fc61752f8bdcf2b61a95e..67e85cd204688f8bcc9b0ccdbb2011a85b3c04e1 100644 (file)
@@ -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 <ikozhukhov@gmail.com>
  */
@@ -367,13 +367,13 @@ describe_free(FILE *fp, differ_info_t *di, uint64_t object, char *namebuf,
 
        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);
        return (0);