Hi James, Jens, On Tue, 30 Sep 2008 09:46:38 -0500, James Bottomley wrote: > On Tue, 2008-09-30 at 10:14 -0400, Kiyoshi Ueda wrote: > > I think you should use blk_end_request(req, -EIO, blk_rq_bytes(rq)) > > here instead of end_dequeued_request(req, -EIO). > > > > end_dequeued_request() needs to be called with queue lock held, > > but I can't see any queue lock in your patches. > > Also, if you add the queue lock and still use end_dequeued_request(), > > __end_that_request_first(), which completes BIOs in the request, > > is called with the queue lock held, though it doesn't require queue > > lock actually. So that might cause some performance regressions. > > Yes, I was just getting around to noticing this. Several other issues > spring immediately to mind > > 1. Why are there both end_dequeued_request and end_queued_request? > They both (by design since we tried to make the end cases the > same) do the same thing They originally differed a little bit, but when blk_end_request interfaces were introduced, they became exactly same: http://marc.info/?t=120008891100007&r=1&w=2 So I tried to kill them: http://marc.info/?t=120008891100007&r=1&w=2 But Jens suggested keep them for a while at the time. Is it the time now to kill them, Jens? Thanks, Kiyoshi Ueda -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html