summaryrefslogtreecommitdiffstats
path: root/libexec/tests
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2015-08-21 08:17:44 +0000
committeravg <avg@FreeBSD.org>2015-08-21 08:17:44 +0000
commitae89183402f4643d960bca1315e1c423e217414f (patch)
tree1c235c7ba261c0c9ec59270249f305431f75069b /libexec/tests
parent1a948318181bbd9f93e662f240e3e68b5bf11c7e (diff)
downloadFreeBSD-src-ae89183402f4643d960bca1315e1c423e217414f.zip
FreeBSD-src-ae89183402f4643d960bca1315e1c423e217414f.tar.gz
try to fix lor between z_teardown_lock and spa_namespace_lock
The lock order reversal and a resulting deadlock were introduced in r285021 / D2865. The problem is that zfs_register_callbacks() calls dsl_prop_get_integer() that has to acquire spa_namespace_lock. At the same time, spa_config_sync() is called with spa_namespace_lock held and then it performs ZFS vnode operations that acquire z_teardown_lock in the reader mode. So, fix the problem by using dsl_prop_get_int_ds() instead of dsl_prop_get_integer(). The former does not need to look up the pool and the dataset by name. Reported by: many Reviewed by: delphij Tested by: delphij, Jens Schweikhardt <schweikh@schweikhardt.net> MFC after: 5 days X-MFC with: r285021
Diffstat (limited to 'libexec/tests')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud