]> git.baikalelectronics.ru Git - kernel.git/commitdiff
dm-cache: remove __remap_to_origin_clear_discard
authorChristoph Hellwig <hch@lst.de>
Wed, 2 Feb 2022 16:01:05 +0000 (17:01 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 4 Feb 2022 14:43:18 +0000 (07:43 -0700)
Fold __remap_to_origin_clear_discard into the two callers to prepare
for bio cloning refactoring.

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

index 447d030036d18977e3350a7a913103ccf5b1bbb8..1c37fe028e531e546173b5df9d36feb48e9bec8a 100644 (file)
@@ -744,21 +744,14 @@ static void check_if_tick_bio_needed(struct cache *cache, struct bio *bio)
        spin_unlock_irq(&cache->lock);
 }
 
-static void __remap_to_origin_clear_discard(struct cache *cache, struct bio *bio,
-                                           dm_oblock_t oblock, bool bio_has_pbd)
-{
-       if (bio_has_pbd)
-               check_if_tick_bio_needed(cache, bio);
-       remap_to_origin(cache, bio);
-       if (bio_data_dir(bio) == WRITE)
-               clear_discard(cache, oblock_to_dblock(cache, oblock));
-}
-
 static void remap_to_origin_clear_discard(struct cache *cache, struct bio *bio,
                                          dm_oblock_t oblock)
 {
        // FIXME: check_if_tick_bio_needed() is called way too much through this interface
-       __remap_to_origin_clear_discard(cache, bio, oblock, true);
+       check_if_tick_bio_needed(cache, bio);
+       remap_to_origin(cache, bio);
+       if (bio_data_dir(bio) == WRITE)
+               clear_discard(cache, oblock_to_dblock(cache, oblock));
 }
 
 static void remap_to_cache_dirty(struct cache *cache, struct bio *bio,
@@ -831,11 +824,10 @@ static void remap_to_origin_and_cache(struct cache *cache, struct bio *bio,
        BUG_ON(!origin_bio);
 
        bio_chain(origin_bio, bio);
-       /*
-        * Passing false to __remap_to_origin_clear_discard() skips
-        * all code that might use per_bio_data (since clone doesn't have it)
-        */
-       __remap_to_origin_clear_discard(cache, origin_bio, oblock, false);
+
+       remap_to_origin(cache, origin_bio);
+       if (bio_data_dir(origin_bio) == WRITE)
+               clear_discard(cache, oblock_to_dblock(cache, oblock));
        submit_bio(origin_bio);
 
        remap_to_cache(cache, bio, cblock);