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@debian.org> PR: kern/162008 MFC after: 3 days
This commit is contained in:
parent
e58889997a
commit
926e106e80
@ -875,6 +875,14 @@ zvol_open(struct g_provider *pp, int flag, int count)
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user