loop: return proper error from loop_queue_rq()
authorOmar Sandoval <osandov@fb.com>
Mon, 14 Nov 2016 22:56:17 +0000 (14:56 -0800)
committerSasha Levin <alexander.levin@verizon.com>
Fri, 13 Jan 2017 01:56:53 +0000 (20:56 -0500)
[ Upstream commit b4a567e8114327518c09f5632339a5954ab975a3 ]

->queue_rq() should return one of the BLK_MQ_RQ_QUEUE_* constants, not
an errno.

f4aa4c7bbac6 ("block: loop: convert to per-device workqueue")
Signed-off-by: Omar Sandoval <osandov@fb.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
drivers/block/loop.c

index cef6fa83a2740e2cd6aca4f9450b48429b99e9e1..ea0c863861b98879a0c980f75e9ebd18a2934776 100644 (file)
@@ -1436,7 +1436,7 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx,
        blk_mq_start_request(bd->rq);
 
        if (lo->lo_state != Lo_bound)
-               return -EIO;
+               return BLK_MQ_RQ_QUEUE_ERROR;
 
        if (cmd->rq->cmd_flags & REQ_WRITE) {
                struct loop_device *lo = cmd->rq->q->queuedata;