[PATCH] "Fix" AS i/o hang with aacraid driver
From: Mark Haverkamp <markh@osdl.org>
Mark says:
"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."
It affects other SCSI drivers, but less frequently. We're assuming this is
the cause of several "everything got stuck in D state" reports.
A very long design discussion has ensued. We don't have a suitably tested fix
ready so I think it is best to put Mark's one-liner in there for now, fix it
for real when everyone gets back from OLS.