diff options
author | Mike Snitzer <snitzer@redhat.com> | 2017-11-09 17:59:37 +0100 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2017-11-10 21:45:07 +0100 |
commit | ef7afb3656854de04fe03b0b9b4f3722b5722d8d (patch) | |
tree | 8206b449eb3306b5df1c7e7c163afd1105126c5f /drivers/md/dm-cache-target.c | |
parent | dm cache: remove usused deferred_cells member from struct cache (diff) | |
download | linux-ef7afb3656854de04fe03b0b9b4f3722b5722d8d.tar.xz linux-ef7afb3656854de04fe03b0b9b4f3722b5722d8d.zip |
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.c | 17 |
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) struct dm_cache_migration *mg; mg = mempool_alloc(cache->migration_pool, GFP_NOWAIT); - if (mg) { - mg->cache = cache; - atomic_inc(&mg->cache->nr_allocated_migrations); - } + if (!mg) + return NULL; + + memset(mg, 0, sizeof(*mg)); + + mg->cache = cache; + atomic_inc(&cache->nr_allocated_migrations); return mg; } @@ -1542,9 +1545,6 @@ static int mg_start(struct cache *cache, struct policy_work *op, struct bio *bio return -ENOMEM; } - memset(mg, 0, sizeof(*mg)); - - mg->cache = cache; mg->op = op; mg->overwrite_bio = bio; @@ -1678,9 +1678,6 @@ static int invalidate_start(struct cache *cache, dm_cblock_t cblock, return -ENOMEM; } - memset(mg, 0, sizeof(*mg)); - - mg->cache = cache; mg->overwrite_bio = bio; mg->invalidate_cblock = cblock; mg->invalidate_oblock = oblock; |