loop: return proper error from loop_queue_rq()
authorOmar Sandoval <osandov@fb.com>
Mon, 14 Nov 2016 22:56:17 +0000 (14:56 -0800)
committerJens Axboe <axboe@fb.com>
Mon, 14 Nov 2016 22:58:44 +0000 (15:58 -0700)
->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>
drivers/block/loop.c

index fa1b7a90ba11deecda3ba5853b545fc2fc0dc579..4af81876679766d8e3609daf43302d8967b68d00 100644 (file)
@@ -1646,7 +1646,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;
 
        switch (req_op(cmd->rq)) {
        case REQ_OP_FLUSH: