aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-cache-target.c
diff options
context:
space:
mode:
authorMike Snitzer <snitzer@redhat.com>2017-11-09 11:59:37 -0500
committerMike Snitzer <snitzer@redhat.com>2017-11-10 15:45:07 -0500
commitef7afb3656854de04fe03b0b9b4f3722b5722d8d (patch)
tree8206b449eb3306b5df1c7e7c163afd1105126c5f /drivers/md/dm-cache-target.c
parentede6507d67e9f10a8df7f96ed0176d639cd25beb (diff)
dm cache: lift common migration preparation code to alloc_migration()
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/dm-cache-target.c')
-rw-r--r--drivers/md/dm-cache-target.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c
index f81daf8638a4..cf23a14f9c6a 100644
--- a/drivers/md/dm-cache-target.c
+++ b/drivers/md/dm-cache-target.c
@@ -551,10 +551,13 @@ static struct dm_cache_migration *alloc_migration(struct cache *cache)
551 struct dm_cache_migration *mg; 551 struct dm_cache_migration *mg;
552 552
553 mg = mempool_alloc(cache->migration_pool, GFP_NOWAIT); 553 mg = mempool_alloc(cache->migration_pool, GFP_NOWAIT);
554 if (mg) { 554 if (!mg)
555 mg->cache = cache; 555 return NULL;
556 atomic_inc(&mg->cache->nr_allocated_migrations); 556
557 } 557 memset(mg, 0, sizeof(*mg));
558
559 mg->cache = cache;
560 atomic_inc(&cache->nr_allocated_migrations);
558 561
559 return mg; 562 return mg;
560} 563}
@@ -1542,9 +1545,6 @@ static int mg_start(struct cache *cache, struct policy_work *op, struct bio *bio
1542 return -ENOMEM; 1545 return -ENOMEM;
1543 } 1546 }
1544 1547
1545 memset(mg, 0, sizeof(*mg));
1546
1547 mg->cache = cache;
1548 mg->op = op; 1548 mg->op = op;
1549 mg->overwrite_bio = bio; 1549 mg->overwrite_bio = bio;
1550 1550
@@ -1678,9 +1678,6 @@ static int invalidate_start(struct cache *cache, dm_cblock_t cblock,
1678 return -ENOMEM; 1678 return -ENOMEM;
1679 } 1679 }
1680 1680
1681 memset(mg, 0, sizeof(*mg));
1682
1683 mg->cache = cache;
1684 mg->overwrite_bio = bio; 1681 mg->overwrite_bio = bio;
1685 mg->invalidate_cblock = cblock; 1682 mg->invalidate_cblock = cblock;
1686 mg->invalidate_oblock = oblock; 1683 mg->invalidate_oblock = oblock;