OSDN Git Service

btrfs: replace opencoded kvzalloc with the helper
authorDavid Sterba <dsterba@suse.com>
Wed, 31 May 2017 16:40:02 +0000 (18:40 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2017 16:26:01 +0000 (18:26 +0200)
The logic of kmalloc and vmalloc fallback is opencoded in
several places, we can now use the existing helper.

Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/check-integrity.c
fs/btrfs/raid56.c
fs/btrfs/send.c

index 6cabc8a..5f8006e 100644 (file)
@@ -94,7 +94,7 @@
 #include <linux/mutex.h>
 #include <linux/genhd.h>
 #include <linux/blkdev.h>
-#include <linux/vmalloc.h>
+#include <linux/mm.h>
 #include <linux/string.h>
 #include "ctree.h"
 #include "disk-io.h"
@@ -2920,13 +2920,10 @@ int btrfsic_mount(struct btrfs_fs_info *fs_info,
                       fs_info->sectorsize, PAGE_SIZE);
                return -1;
        }
-       state = kzalloc(sizeof(*state), GFP_KERNEL | __GFP_NOWARN | __GFP_REPEAT);
+       state = kvzalloc(sizeof(*state), GFP_KERNEL);
        if (!state) {
-               state = vzalloc(sizeof(*state));
-               if (!state) {
-                       pr_info("btrfs check-integrity: vzalloc() failed!\n");
-                       return -1;
-               }
+               pr_info("btrfs check-integrity: allocation failed!\n");
+               return -1;
        }
 
        if (!btrfsic_is_initialized) {
index d8ea0eb..d68af3c 100644 (file)
@@ -31,7 +31,7 @@
 #include <linux/hash.h>
 #include <linux/list_sort.h>
 #include <linux/raid/xor.h>
-#include <linux/vmalloc.h>
+#include <linux/mm.h>
 #include <asm/div64.h>
 #include "ctree.h"
 #include "extent_map.h"
@@ -218,12 +218,9 @@ int btrfs_alloc_stripe_hash_table(struct btrfs_fs_info *info)
         * of a failing mount.
         */
        table_size = sizeof(*table) + sizeof(*h) * num_entries;
-       table = kzalloc(table_size, GFP_KERNEL | __GFP_NOWARN | __GFP_REPEAT);
-       if (!table) {
-               table = vzalloc(table_size);
-               if (!table)
-                       return -ENOMEM;
-       }
+       table = kvzalloc(table_size, GFP_KERNEL);
+       if (!table)
+               return -ENOMEM;
 
        spin_lock_init(&table->cache_lock);
        INIT_LIST_HEAD(&table->stripe_cache);
index e8185c8..924b1d9 100644 (file)
@@ -6389,13 +6389,10 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_)
 
        alloc_size = sizeof(struct clone_root) * (arg->clone_sources_count + 1);
 
-       sctx->clone_roots = kzalloc(alloc_size, GFP_KERNEL | __GFP_NOWARN);
+       sctx->clone_roots = kzalloc(alloc_size, GFP_KERNEL);
        if (!sctx->clone_roots) {
-               sctx->clone_roots = vzalloc(alloc_size);
-               if (!sctx->clone_roots) {
-                       ret = -ENOMEM;
-                       goto out;
-               }
+               ret = -ENOMEM;
+               goto out;
        }
 
        alloc_size = arg->clone_sources_count * sizeof(*arg->clone_sources);