dm: Use kzalloc for all structs with embedded biosets/mempools
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 5 Jun 2018 09:26:33 +0000 (05:26 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 6 Nov 2019 11:18:01 +0000 (12:18 +0100)
[ Upstream commit d377535405686f735b90a8ad4ba269484cd7c96e ]

mempool_init()/bioset_init() require that the mempools/biosets be zeroed
first; they probably should not _require_ this, but not allocating those
structs with kzalloc is a fairly nonsensical thing to do (calling
mempool_exit()/bioset_exit() on an uninitialized mempool/bioset is legal
and safe, but only works if said memory was zeroed.)

Acked-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/md/dm-bio-prison.c
drivers/md/dm-io.c
drivers/md/dm-kcopyd.c
drivers/md/dm-region-hash.c
drivers/md/dm-snap.c
drivers/md/dm-thin.c

index 03af174..fa2432a 100644 (file)
@@ -32,7 +32,7 @@ static struct kmem_cache *_cell_cache;
  */
 struct dm_bio_prison *dm_bio_prison_create(void)
 {
-       struct dm_bio_prison *prison = kmalloc(sizeof(*prison), GFP_KERNEL);
+       struct dm_bio_prison *prison = kzalloc(sizeof(*prison), GFP_KERNEL);
 
        if (!prison)
                return NULL;
index ee6045d..201d90f 100644 (file)
@@ -50,7 +50,7 @@ struct dm_io_client *dm_io_client_create(void)
        struct dm_io_client *client;
        unsigned min_ios = dm_get_reserved_bio_based_ios();
 
-       client = kmalloc(sizeof(*client), GFP_KERNEL);
+       client = kzalloc(sizeof(*client), GFP_KERNEL);
        if (!client)
                return ERR_PTR(-ENOMEM);
 
index e0cfde3..4609c5b 100644 (file)
@@ -828,7 +828,7 @@ struct dm_kcopyd_client *dm_kcopyd_client_create(struct dm_kcopyd_throttle *thro
        int r = -ENOMEM;
        struct dm_kcopyd_client *kc;
 
-       kc = kmalloc(sizeof(*kc), GFP_KERNEL);
+       kc = kzalloc(sizeof(*kc), GFP_KERNEL);
        if (!kc)
                return ERR_PTR(-ENOMEM);
 
index 85c32b2..91c6f6d 100644 (file)
@@ -179,7 +179,7 @@ struct dm_region_hash *dm_region_hash_create(
                ;
        nr_buckets >>= 1;
 
-       rh = kmalloc(sizeof(*rh), GFP_KERNEL);
+       rh = kzalloc(sizeof(*rh), GFP_KERNEL);
        if (!rh) {
                DMERR("unable to allocate region hash memory");
                return ERR_PTR(-ENOMEM);
index cf2f44e..c04d9f2 100644 (file)
@@ -1136,7 +1136,7 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv)
                origin_mode = FMODE_WRITE;
        }
 
-       s = kmalloc(sizeof(*s), GFP_KERNEL);
+       s = kzalloc(sizeof(*s), GFP_KERNEL);
        if (!s) {
                ti->error = "Cannot allocate private snapshot structure";
                r = -ENOMEM;
index 23a7e10..dcb753d 100644 (file)
@@ -2965,7 +2965,7 @@ static struct pool *pool_create(struct mapped_device *pool_md,
                return (struct pool *)pmd;
        }
 
-       pool = kmalloc(sizeof(*pool), GFP_KERNEL);
+       pool = kzalloc(sizeof(*pool), GFP_KERNEL);
        if (!pool) {
                *error = "Error allocating memory for pool";
                err_p = ERR_PTR(-ENOMEM);