diff options
author | tuxoko <[email protected]> | 2015-09-01 20:02:48 +0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2015-09-01 10:17:57 -0700 |
commit | cafbd2aca3fd17be78577348d9661f4142d1eb70 (patch) | |
tree | a9f9784844d3c5d2cfbafb97e541b6b0aa57a26f /module/zfs/zrlock.c | |
parent | 97771edaca2cac5905571f1355dd2b6256a306b4 (diff) |
Check for RW_WRITE_HELD in zfs_inactive
Before read locking z_teardown_inactive_lock, we need to check if we have
already had write lock on it. Otherwise, we would deadlock on ourself when
doing rollback:
zfs_ioc_rollback
->zfs_suspend_fs (z_teardown_inactive_lock, RW_WRITER)
->zfs_resume_fs->zfs_rezget->zfs_iput_async->iput-> ...
->zfs_inactive (z_teardown_inactive_lock, RW_READER)
Signed-off-by: Chunwei Chen <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #2869
Diffstat (limited to 'module/zfs/zrlock.c')
0 files changed, 0 insertions, 0 deletions