Re: [BUG] Oops when SCSI device under multipath is removed

From: Jun'ichi Nomura
Date: Wed Sep 07 2011 - 20:04:10 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/