]> git.baikalelectronics.ru Git - kernel.git/commitdiff
dm: remove dm_dispatch_clone_request
authorChristoph Hellwig <hch@lst.de>
Tue, 15 Feb 2022 10:05:40 +0000 (11:05 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 17 Feb 2022 02:39:10 +0000 (19:39 -0700)
Fold dm_dispatch_clone_request into it's only caller, and use a switch
statement to single dispatch for the handling of the different return
values from blk_insert_cloned_request.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Link: https://lore.kernel.org/r/20220215100540.3892965-6-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/dm-rq.c

index 8f6117342d3225a723a2c690426ee485ef3cdece..6948d5db909253f6ae76bff21631b6f6ecb3a345 100644 (file)
@@ -303,17 +303,6 @@ static void end_clone_request(struct request *clone, blk_status_t error)
        dm_complete_request(tio->orig, error);
 }
 
-static blk_status_t dm_dispatch_clone_request(struct request *clone, struct request *rq)
-{
-       blk_status_t r;
-
-       r = blk_insert_cloned_request(clone);
-       if (r != BLK_STS_OK && r != BLK_STS_RESOURCE && r != BLK_STS_DEV_RESOURCE)
-               /* must complete clone in terms of original request */
-               dm_complete_request(rq, r);
-       return r;
-}
-
 static int dm_rq_bio_constructor(struct bio *bio, struct bio *bio_orig,
                                 void *data)
 {
@@ -394,13 +383,20 @@ static int map_request(struct dm_rq_target_io *tio)
                /* The target has remapped the I/O so dispatch it */
                trace_block_rq_remap(clone, disk_devt(dm_disk(md)),
                                     blk_rq_pos(rq));
-               ret = dm_dispatch_clone_request(clone, rq);
-               if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE) {
+               ret = blk_insert_cloned_request(clone);
+               switch (ret) {
+               case BLK_STS_OK:
+                       break;
+               case BLK_STS_RESOURCE:
+               case BLK_STS_DEV_RESOURCE:
                        blk_rq_unprep_clone(clone);
                        blk_mq_cleanup_rq(clone);
                        tio->ti->type->release_clone_rq(clone, &tio->info);
                        tio->clone = NULL;
                        return DM_MAPIO_REQUEUE;
+               default:
+                       /* must complete clone in terms of original request */
+                       dm_complete_request(rq, ret);
                }
                break;
        case DM_MAPIO_REQUEUE: