1346 zfs incremental receive may leave behind temporary clones
authorMartin Matuska <mm@FreeBSD.org>
Fri, 21 Oct 2011 11:49:36 -0400
changeset 13492 83d135508f56
parent 13491 fdfb21800636
child 13493 86d96517d461
1346 zfs incremental receive may leave behind temporary clones 1356 zfs dataset prefetch code not working Reviewed by: Matthew Ahrens <[email protected]> Reviewed by: Dan McDonald <[email protected]> Approved by: Gordon Ross <[email protected]>
usr/src/uts/common/fs/zfs/zfs_ioctl.c
--- a/usr/src/uts/common/fs/zfs/zfs_ioctl.c	Thu Oct 20 07:54:20 2011 -0700
+++ b/usr/src/uts/common/fs/zfs/zfs_ioctl.c	Fri Oct 21 11:49:36 2011 -0400
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Portions Copyright 2011 Martin Matuska
  */
 
 #include <sys/types.h>
@@ -1943,8 +1944,10 @@
 		uint64_t cookie = 0;
 		int len = sizeof (zc->zc_name) - (p - zc->zc_name);
 
-		while (dmu_dir_list_next(os, len, p, NULL, &cookie) == 0)
-			(void) dmu_objset_prefetch(p, NULL);
+		while (dmu_dir_list_next(os, len, p, NULL, &cookie) == 0) {
+			if (!dataset_name_hidden(zc->zc_name))
+				(void) dmu_objset_prefetch(zc->zc_name, NULL);
+		}
 	}
 
 	do {