diff options
author | Srinivas Eeda <srinivas.eeda@oracle.com> | 2012-01-31 09:51:22 +0400 |
---|---|---|
committer | Joel Becker <jlbec@evilplan.org> | 2012-07-04 10:27:15 +0400 |
commit | a75e9ccabd925d16954739bd977c54695c9310d0 (patch) | |
tree | f3f80253d2fbabdba0fbe35d48482d6a550ea030 /fs/ocfs2/extent_map.c | |
parent | 16865b7c42fbce8a4d2b278460e387e719e289cb (diff) | |
download | linux-a75e9ccabd925d16954739bd977c54695c9310d0.tar.xz |
ocfs2: use spinlock irqsave for downconvert lock.patch
When ocfs2dc thread holds dc_task_lock spinlock and receives soft IRQ it
deadlock itself trying to get same spinlock in ocfs2_wake_downconvert_thread.
Below is the stack snippet.
The patch disables interrupts when acquiring dc_task_lock spinlock.
ocfs2_wake_downconvert_thread
ocfs2_rw_unlock
ocfs2_dio_end_io
dio_complete
.....
bio_endio
req_bio_endio
....
scsi_io_completion
blk_done_softirq
__do_softirq
do_softirq
irq_exit
do_IRQ
ocfs2_downconvert_thread
[kthread]
Signed-off-by: Srinivas Eeda <srinivas.eeda@oracle.com>
Signed-off-by: Joel Becker <jlbec@evilplan.org>
Diffstat (limited to 'fs/ocfs2/extent_map.c')
0 files changed, 0 insertions, 0 deletions