]> git.baikalelectronics.ru Git - kernel.git/commit
ocfs2: use spinlock irqsave for downconvert lock.patch
authorSrinivas Eeda <srinivas.eeda@oracle.com>
Tue, 31 Jan 2012 05:51:22 +0000 (21:51 -0800)
committerJoel Becker <jlbec@evilplan.org>
Wed, 4 Jul 2012 06:27:15 +0000 (23:27 -0700)
commit85295978e388d594f10b8259ca5bfa3f07a821cb
treef3f80253d2fbabdba0fbe35d48482d6a550ea030
parentd8f538dbc69da592b55b372af6e13f833d34345e
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>
fs/ocfs2/dlmglue.c