kern/157728: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Sat Aug 13 11:00:29 UTC 2011
The following reply was made to PR kern/157728; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: kern/157728: commit references a PR
Date: Sat, 13 Aug 2011 10:59:07 +0000 (UTC)
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 at 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 {
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-fs
mailing list