summaryrefslogtreecommitdiffstats
path: root/contrib/libc++/src/ios.cpp
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2016-10-28 18:18:53 +0000
committermav <mav@FreeBSD.org>2016-10-28 18:18:53 +0000
commitc8c4c6244daef57c7b854dfe5de8a10d8675634b (patch)
treea8e6cb6833101513ffe3bbb9ecea29fca0736409 /contrib/libc++/src/ios.cpp
parentc60f65ebc02c81225657a336afc72d7d08f4fe36 (diff)
downloadFreeBSD-src-c8c4c6244daef57c7b854dfe5de8a10d8675634b.zip
FreeBSD-src-c8c4c6244daef57c7b854dfe5de8a10d8675634b.tar.gz
MFC r294329 (by asomers): 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.
Diffstat (limited to 'contrib/libc++/src/ios.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud