Btrfs: use args in the correct order for kcalloc in btrfsic_read_block
authorLiu Bo <bo.liu@linux.alibaba.com>
Fri, 7 Sep 2018 20:41:40 +0000 (04:41 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 15 Oct 2018 15:23:30 +0000 (17:23 +0200)
kcalloc is defined as:

  kcalloc(size_t n, size_t size, gfp_t flags)

Although this won't cause problems in practice, btrfsic_read_block()
uses kcalloc with n and size in the opposite order.

Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Liu Bo <bo.liu@linux.alibaba.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/check-integrity.c

index 833cf3c..2e43fba 100644 (file)
@@ -1594,6 +1594,7 @@ static int btrfsic_read_block(struct btrfsic_state *state,
 {
        unsigned int num_pages;
        unsigned int i;
+       size_t size;
        u64 dev_bytenr;
        int ret;
 
@@ -1608,9 +1609,8 @@ static int btrfsic_read_block(struct btrfsic_state *state,
 
        num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >>
                    PAGE_SHIFT;
-       block_ctx->mem_to_free = kcalloc(sizeof(*block_ctx->datav) +
-                                               sizeof(*block_ctx->pagev),
-                                        num_pages, GFP_NOFS);
+       size = sizeof(*block_ctx->datav) + sizeof(*block_ctx->pagev);
+       block_ctx->mem_to_free = kcalloc(num_pages, size, GFP_NOFS);
        if (!block_ctx->mem_to_free)
                return -ENOMEM;
        block_ctx->datav = block_ctx->mem_to_free;