bcache: Use struct_size() in kzalloc()
authorGustavo A. R. Silva <gustavoars@kernel.org>
Sat, 25 Jul 2020 12:00:20 +0000 (20:00 +0800)
committerJens Axboe <axboe@kernel.dk>
Sat, 25 Jul 2020 13:38:20 +0000 (07:38 -0600)
Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes.

This code was detected with the help of Coccinelle and, audited and
fixed manually.

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/writeback.c

index 71801c0..5397a2c 100644 (file)
@@ -459,10 +459,8 @@ static void read_dirty(struct cached_dev *dc)
                for (i = 0; i < nk; i++) {
                        w = keys[i];
 
-                       io = kzalloc(sizeof(struct dirty_io) +
-                                    sizeof(struct bio_vec) *
-                                    DIV_ROUND_UP(KEY_SIZE(&w->key),
-                                                 PAGE_SECTORS),
+                       io = kzalloc(struct_size(io, bio.bi_inline_vecs,
+                                               DIV_ROUND_UP(KEY_SIZE(&w->key), PAGE_SECTORS)),
                                     GFP_KERNEL);
                        if (!io)
                                goto err;