Revert "scsi: check request was requeued before scheduling requeue work"
This reverts change I5de4cb0df00aa0c5dc66a4faad71fa04446f6545. Disabling requeueing of a completed request will cause a request not to be retried (by requeueing it) in cases where the low-level driver detected some error but finished processing of the requeust. Specifically, not retrying the request will cause calls to functions such as blk_execute_rq to block forever. Change-Id: Ic1e96bb4996afa05f7d9bde3167d1400a174b737 Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
This commit is contained in:
parent
3fc4ced6ce
commit
f69d1b5bb8
|
@ -182,9 +182,8 @@ static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, int unbusy)
|
|||
* before blk_cleanup_queue() finishes.
|
||||
*/
|
||||
spin_lock_irqsave(q->queue_lock, flags);
|
||||
/* Schedule requeue work only if request was successfully requeued */
|
||||
if (blk_requeue_request(q, cmd->request))
|
||||
kblockd_schedule_work(q, &device->requeue_work);
|
||||
blk_requeue_request(q, cmd->request);
|
||||
kblockd_schedule_work(q, &device->requeue_work);
|
||||
spin_unlock_irqrestore(q->queue_lock, flags);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue