Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Aug 2011 10:58:53 +0000 (UTC)
From:      Martin Matuska <mm@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r224814 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201108131058.p7DAwrUU010959@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mm
Date: Sat Aug 13 10:58:53 2011
New Revision: 224814
URL: http://svn.freebsd.org/changeset/base/224814

Log:
  Fix race between dmu_objset_prefetch() invoked from
  zfs_ioc_dataset_list_next() and dsl_dir_destroy_check() indirectly
  invoked from dmu_recv_existing_end() via dsl_dataset_destroy() by not
  prefetching temporary clones, as these count as always inconsistent.
  In addition, do not prefetch hidden datasets at all as we are not
  going to process these later.
  
  Filed as Illumos Bug #1346
  
  PR:		kern/157728
  Tested by:	Borja Marcos <borjam@sarenet.es>, mm
  Reviewed by:	pjd
  Approved by:	re (kib)
  MFC after:	1 week

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Sat Aug 13 10:43:56 2011	(r224813)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Sat Aug 13 10:58:53 2011	(r224814)
@@ -1964,7 +1964,8 @@ top:
 		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(zc->zc_name, NULL);
+			if (dataset_name_hidden(zc->zc_name) == B_FALSE)
+				(void) dmu_objset_prefetch(zc->zc_name, NULL);
 	}
 
 	do {



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