Hello, On 04/01/2010 04:54 PM, Herbert Xu wrote: > On Thu, Apr 01, 2010 at 03:37:47PM +0900, Tejun Heo wrote: >> >> It was the asymmetry between the two paths that bothered me and made >> me think there should be something else wrong. So, the problem is >> ide_dma_timeout_retry(), which is used only by ide_timer_expiry(), >> clearing hwif->rq, right? Then, wouldn't not clearing hwif->rq in >> ide_dma_timeout_retry() a better solution? > > I don't think that works. We want to requeue regardless of whether > we return ide_stopped. If you don't clear hwif->rq and rely on the > parent to do it then it'll only requeue when we return ide_stopped. Yeap, which applies the same to the other failure path too. I think back then I repeated the same mistake I did in this thread - ie. thinking ide_stopped indicates the state of the request. It seems the error path needs audit and more comprehensive fix unless I'm mistaken yet again, which definitely is a possbility. :-) If you're interested in fixing the request requeueing in error path properly, please go ahead. If not, I'll give it a shot this in a few days. David, in the meantime, although I'm not quite sure the fix is comprehensive yet, the patches definitely fix some of the issues. So, I have no objection to applying them. Thanks for your patience. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html