On 12/15/2009 03:17 AM, Min Zhang wrote: <snip> > > Boaz, i think your patch will make scsi_request_fn always goto not_ready > and skip scsi_dispatch_cmd, because after removing blk_queue_start_tag, > subsequent if (blk_queue_tagged(q) && !blk_rq_tagged(req)) is always > true. The original blk_queue_start_tag is necessary to set REQ_QUEUE so > that blk_rq_tagged check can pass for dispatching. I don't see the other > blk_queue_start_tag call. > You're absolutely right. I got mixed up between blk_queue_start_tag && blk_rq_tagged So I missed the call to blk_queue_start_tag. > Also timeout failure can still occur after scsi_request_fn unlock the > host_lock and before scsi_dispatch_cmd re-lock it. > This was exactly my intention, to do all the things that can fail and the unlocking then relocking before we start the request. And leave no failing possibility and lock released between the start of the request and the dispatching. I think it would be wroth it. But it's your call Boaz -- 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