aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2019-06-03 20:39:13 +0000
committerAlexander Motin <mav@FreeBSD.org>2019-06-03 20:39:13 +0000
commit3705c6e18fce48f932fe6c90312453fd9bebcb56 (patch)
treef4e76d762102677a2c8bfa2c7dd88f59a83aa996
parent0e67d63bd897a716179a2784063c4c0af25e200e (diff)
downloadsrc-3705c6e18fce48f932fe6c90312453fd9bebcb56.tar.gz
src-3705c6e18fce48f932fe6c90312453fd9bebcb56.zip
9559 zfs diff handles files on delete queue in fromsnap poorly
illumos/illumos-gate@20633e304b57bc98f70fdb194081b7023adf527b Reviewed by: Joshua M. Clulow <josh@sysmgr.org> Approved by: Richard Lowe <richlowe@richlowe.net> Author: Paul Dagnelie <pcd@delphix.com>
Notes
Notes: svn path=/vendor/illumos/dist/; revision=348580
-rw-r--r--lib/libzfs/common/libzfs_diff.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/libzfs/common/libzfs_diff.c b/lib/libzfs/common/libzfs_diff.c
index b47b669e80cd..ad1fa67f1f3c 100644
--- a/lib/libzfs/common/libzfs_diff.c
+++ b/lib/libzfs/common/libzfs_diff.c
@@ -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>
*/
@@ -49,7 +49,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 '+'
@@ -359,13 +359,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);