[dm-devel] [BUG] Oops when SCSI device under multipath is removed

Jun'ichi Nomura j-nomura at ce.jp.nec.com
Thu Sep 8 00:00:58 UTC 2011


Hello,

On 09/01/11 04:50, Thadeu Lima de Souza Cascardo wrote:
> On Thu, Aug 18, 2011 at 06:11:19PM +0900, Jun'ichi Nomura wrote:
>> Actually, Tejun has posted a patch to replace
>> execute_in_process_context() with queue_work()
>> and asking your review:
>>
>>   [PATCH RESEND] scsi: don't use execute_in_process_context()
>>   https://lkml.org/lkml/2011/4/30/87
>>
>> Do you think you can take the patch and revert the move
>> of scsi_free_queue()?
> 
> I've tested with your suggestion (reverting the move of scsi_free_queue)
> and it works like a charm. I did not get any oops after that. I tested
> with a multipath setup on top of two iscsi targets. Using dd after
> logging out of some of one of the iscsi targets would trigger the oops.
> With this patch, it could not be triggered anymore.

Thank you for testing and the report.

Since scsi_free_queue() frees elevator, calling it while there
still is a user of the elevator has no way to work.
Either we should call it later (like the above suggestion)
or change scsi_free_queue not to free the elevator
(James posted a patch early in this thread).

I think the latter approach could be nice if it worked.
But if not, the former approach should be taken.
Without fix, a path failure can cause a panic. This is bad...

Best regards,
-- 
Jun'ichi Nomura, NEC Corporation




More information about the dm-devel mailing list