svn commit: r227110 -
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Pawel Jakub Dawidek
pjd at FreeBSD.org
Sat Nov 5 16:29:03 UTC 2011
Author: pjd
Date: Sat Nov 5 16:29:03 2011
New Revision: 227110
URL: http://svn.freebsd.org/changeset/base/227110
Log:
In zvol_open() if the spa_namespace_lock is already held, it means that
ZFS is trying to open and taste ZVOL as its VDEV. This is not supported,
so return an error instead of panicing on spa_namespace_lock recursion.
Reported by: Robert Millan <rmh at debian.org>
PR: kern/162008
MFC after: 3 days
Modified:
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Sat Nov 5 16:04:57 2011 (r227109)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Sat Nov 5 16:29:03 2011 (r227110)
@@ -875,6 +875,14 @@ zvol_open(struct g_provider *pp, int fla
zvol_state_t *zv;
int err = 0;
+ if (MUTEX_HELD(&spa_namespace_lock)) {
+ /*
+ * If the spa_namespace_lock is being held, it means that ZFS
+ * is trying to open ZVOL as its VDEV. This i not supported.
+ */
+ return (EOPNOTSUPP);
+ }
+
mutex_enter(&spa_namespace_lock);
zv = pp->private;
More information about the svn-src-all
mailing list