Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jun 2019 20:39:13 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r348580 - vendor/illumos/dist/lib/libzfs/common
Message-ID:  <201906032039.x53KdDiN039661@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Mon Jun  3 20:39:13 2019
New Revision: 348580
URL: https://svnweb.freebsd.org/changeset/base/348580

Log:
  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>

Modified:
  vendor/illumos/dist/lib/libzfs/common/libzfs_diff.c

Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_diff.c
==============================================================================
--- vendor/illumos/dist/lib/libzfs/common/libzfs_diff.c	Mon Jun  3 20:24:40 2019	(r348579)
+++ vendor/illumos/dist/lib/libzfs/common/libzfs_diff.c	Mon Jun  3 20:39:13 2019	(r348580)
@@ -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,12 +359,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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201906032039.x53KdDiN039661>