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 <h...@lst.de>
---
 drivers/md/dm-rq.c | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c
index 8f6117342d322..6948d5db90925 100644
--- a/drivers/md/dm-rq.c
+++ b/drivers/md/dm-rq.c
@@ -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:
-- 
2.30.2

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel

Reply via email to