[Ocfs2-devel] [PATCH 1/1] ocfs2: use spinlock irqsave for downconvert lock.patch

Li Zefan lizefan at huawei.com
Wed Jul 4 01:00:43 PDT 2012


On 2012/7/4 15:32, Joel Becker wrote:

> On Mon, Jan 30, 2012 at 09:51:22PM -0800, Srinivas Eeda wrote:
>> 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 at oracle.com>
> 
> This patch is now (finally) part of the 'fixes' branch of ocfs2.git.
> 


Recently we hit this bug too, and planned to send exactly the same fix..



More information about the Ocfs2-devel mailing list