Re: [PATCH] as i/o hang with aacraid driver 2.6.0-test1

Nick Piggin
2003-07-16T01:25:55Z

Thanks Mark, great. It looks fine.

>Daniel McNeil and I have been debugging a hang with the aacraid driver
>using the as I/O scheduler. We found that scsi_request_fn would
>de-queue a request and later re-queued it. This left the
>as_data->nr_dispatched variable in an inconsistent state (it was never
>being decremented back to zero). We added a call to
>elv_completed_request to clean up the state before re-adding the
>request. This has fixed our hang problem. The linux-scsi list is being
>copied for review of the scsi_lib.c change.
>
>===== drivers/scsi/scsi_lib.c 1.99 vs edited =====
>--- 1.99/drivers/scsi/scsi_lib.c Sun Jun 29 18:14:44 2003
>+++ edited/drivers/scsi/scsi_lib.c Tue Jul 15 15:47:45 2003
>@@ -1215,6 +1215,7 @@
> spin_lock_irq(q->queue_lock);
> if (blk_rq_tagged(req))
> blk_queue_end_tag(q, req);
>+ elv_completed_request(q, req);
> __elv_add_request(q, req, 0, 0);
> sdev->device_busy--;
> if(sdev->device_busy == 0)
>
>
>