]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ocfs2: use spinlock irqsave for downconvert lock.patch
authorSrinivas Eeda <srinivas.eeda@oracle.com>
Tue, 31 Jan 2012 22:37:19 +0000 (14:37 -0800)
committerGuru Anbalagane <guru.anbalagane@oracle.com>
Wed, 1 Feb 2012 07:12:31 +0000 (23:12 -0800)
commit86b544f3e63cef752295ae951d7074164ade1354
tree83909dff3d3a416df1639602923d1db0fb22b70c
parent906478165352e97aac4abd469d4cc024974f6d20
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: Sunil Mushran <sunil.mushran@oracle.com>
fs/ocfs2/dlmglue.c