[PATCH] ubi: block: Fix missing blk_mq_end_request

Richard Weinberger richard at nod.at
Sat Mar 11 01:29:29 PST 2023

Switching to BLK_MQ_F_BLOCKING wrongly removed the call to
blk_mq_end_request(). Add it back to have our IOs finished

Cc: Daniel Palmer <daniel at 0x0f.com>
Cc: Linus Torvalds <torvalds at linux-foundation.org>
Cc: Christoph Hellwig <hch at lst.de>
Fixes: 91cc8fbcc8c7 ("ubi: block: set BLK_MQ_F_BLOCKING")
Analyzed-by: Linus Torvalds <torvalds at linux-foundation.org>
Reported-by: Daniel Palmer <daniel at 0x0f.com>
Link: https://lore.kernel.org/linux-mtd/CAHk-=wi29bbBNh3RqJKu3PxzpjDN5D5K17gEVtXrb7-6bfrnMQ@mail.gmail.com/
Signed-off-by: Richard Weinberger <richard at nod.at>
 drivers/mtd/ubi/block.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
index 1de87062c67b..3711d7f74600 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
@@ -221,7 +221,10 @@ static blk_status_t ubiblock_read(struct request *req)
 	rq_for_each_segment(bvec, req, iter)
-	return errno_to_blk_status(ret);
+	blk_mq_end_request(req, errno_to_blk_status(ret));
+	return BLK_STS_OK;
 static int ubiblock_open(struct block_device *bdev, fmode_t mode)

More information about the linux-mtd mailing list