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:
Gilad Broner 2015-02-02 15:10:38 +02:00
parent 3fc4ced6ce
commit f69d1b5bb8
1 changed files with 2 additions and 3 deletions

View File

@ -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);
}