From 98d07d5798390bbe3817418db51afa895831e900 Mon Sep 17 00:00:00 2001 From: Paul Dagnelie Date: Thu, 24 May 2018 13:38:47 -0700 Subject: OpenZFS 9559 - zfs diff handles files on delete queue in fromsnap poorly Authored by: Paul Dagnelie Reviewed by: Joshua M. Clulow Reviewed by: Tom Caputi Approved by: Richard Lowe Ported-by: Brian Behlendorf OpenZFS-issue: https://www.illumos.org/issues/9559 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/d7e45412 Closes #8211 --- lib/libzfs/libzfs_diff.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/libzfs/libzfs_diff.c b/lib/libzfs/libzfs_diff.c index fb7a1fcf4..67e85cd20 100644 --- a/lib/libzfs/libzfs_diff.c +++ b/lib/libzfs/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 */ @@ -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); -- cgit v1.2.3