From 69cfbb636c0638258dbfd230e3258b5f45607e97 Mon Sep 17 00:00:00 2001 From: Sergei Shtepa Date: Wed, 30 Oct 2024 13:42:50 +0100 Subject: [PATCH] do not call blk_mq_end_request() in snapimage_queue_rq() --- module/snapimage.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/module/snapimage.c b/module/snapimage.c index 228f916..0635636 100644 --- a/module/snapimage.c +++ b/module/snapimage.c @@ -143,22 +143,17 @@ static blk_status_t snapimage_queue_rq(struct blk_mq_hw_ctx *hctx, struct snapimage *snapimage = rq->q->queuedata; struct snapimage_cmd *cmd = blk_mq_rq_to_pdu(rq); - blk_mq_start_request(rq); - - if (unlikely(diff_area_is_corrupted(snapimage->diff_area))) { - blk_mq_end_request(rq, BLK_STS_NOSPC); + if (unlikely(diff_area_is_corrupted(snapimage->diff_area))) return BLK_STS_NOSPC; - } if (op_is_write(req_op(rq))) { ret = cbt_map_set_both(snapimage->cbt_map, blk_rq_pos(rq), blk_rq_sectors(rq)); - if (unlikely(ret)) { - blk_mq_end_request(rq, BLK_STS_IOERR); + if (unlikely(ret)) return BLK_STS_IOERR; - } } + blk_mq_start_request(rq); kthread_queue_work(&snapimage->worker, &cmd->work); return BLK_STS_OK; }