diff options
author | Alexander Motin <[email protected]> | 2020-07-14 15:21:57 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2020-07-14 12:21:57 -0700 |
commit | 1743c737f5ad6e2c6c429858b7c0f717ecb20954 (patch) | |
tree | 87da399170b38d8197ede250343e509c7f943b2e /etc | |
parent | 5f72109e5bd84124bd6dd9877fae3fa9ae7ee348 (diff) |
Fix LOR between dp_config_rwlock and spa_props_lock
Our QE team during automated API testing hit deadlock in ZFS, caused
by lock order reversal. From one side dsl_sync_task_sync() locks
dp_config_rwlock as writer and calls spa_sync_props(), which waits
for spa_props_lock. From another spa_prop_get() locks spa_props_lock
and then calls dsl_pool_config_enter(), trying to lock dp_config_rwlock
as reader.
This patch makes spa_prop_get() lock dp_config_rwlock before
spa_props_lock, making the order consistent.
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Alexander Motin <[email protected]>
Closes #10553
Diffstat (limited to 'etc')
0 files changed, 0 insertions, 0 deletions