Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20741213 authored by Gilad Broner's avatar Gilad Broner
Browse files

scsi: check request was requeued before scheduling requeue work



blk_requeue_request() may not always actually requeue the request.
Verify request was requeued before scheduling the requeue work.

Change-Id: I5de4cb0df00aa0c5dc66a4faad71fa04446f6545
Signed-off-by: default avatarGilad Broner <gbroner@codeaurora.org>
parent 01dcbce3
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -182,7 +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);
	blk_requeue_request(q, cmd->request);
	/* Schedule requeue work only if request was successfully requeued */
	if (blk_requeue_request(q, cmd->request))
		kblockd_schedule_work(q, &device->requeue_work);
	spin_unlock_irqrestore(q->queue_lock, flags);
}