diff options
author | avg <avg@FreeBSD.org> | 2015-08-21 08:17:44 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2015-08-21 08:17:44 +0000 |
commit | ae89183402f4643d960bca1315e1c423e217414f (patch) | |
tree | 1c235c7ba261c0c9ec59270249f305431f75069b /bin/kill | |
parent | 1a948318181bbd9f93e662f240e3e68b5bf11c7e (diff) | |
download | FreeBSD-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 'bin/kill')
0 files changed, 0 insertions, 0 deletions