diff options
author | asomers <asomers@FreeBSD.org> | 2016-01-19 17:00:25 +0000 |
---|---|---|
committer | asomers <asomers@FreeBSD.org> | 2016-01-19 17:00:25 +0000 |
commit | 5127f80e63d0d5eeabc1b096e19d41fc98aa83fa (patch) | |
tree | ad487037ec17ef92706df2a4069bac1dc8e6d935 /crypto/openssh/contrib/redhat | |
parent | 14172c52f89fa504003826ed2e4e2c0ac246505d (diff) | |
download | FreeBSD-src-5127f80e63d0d5eeabc1b096e19d41fc98aa83fa.zip FreeBSD-src-5127f80e63d0d5eeabc1b096e19d41fc98aa83fa.tar.gz |
Disallow zvol-backed ZFS pools
Using zvols as backing devices for ZFS pools is fraught with panics and
deadlocks. For example, attempting to online a missing device in the
presence of a zvol can cause a panic when vdev_geom tastes the zvol. Better
to completely disable vdev_geom from ever opening a zvol. The solution
relies on setting a thread-local variable during vdev_geom_open, and
returning EOPNOTSUPP during zvol_open if that thread-local variable is set.
Remove the check for MUTEX_HELD(&zfsdev_state_lock) in zvol_open. Its intent
was to prevent a recursive mutex acquisition panic. However, the new check
for the thread-local variable also fixes that problem.
Also, fix a panic in vdev_geom_taste_orphan. For an unknown reason, this
function was set to panic. But it can occur that a device disappears during
tasting, and it causes no problems to ignore this departure.
Reviewed by: delphij
MFC after: 1 week
Relnotes: yes
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D4986
Diffstat (limited to 'crypto/openssh/contrib/redhat')
0 files changed, 0 insertions, 0 deletions