btrfs: send: use kvmalloc in iterate_dir_item
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:02 +0000 (18:26 +0200)
We use a growing buffer for xattrs larger than a page size, at some
point vmalloc is unconditionally used for larger buffers. We can still
try to avoid it using the kvmalloc helper.

Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/send.c

index 924b1d941b539ebeb788c0c8f6fefbda157bc30e..7416b17c0eac5ba086affc6b6798da96953ecf07 100644 (file)
@@ -1083,7 +1083,7 @@ static int iterate_dir_item(struct btrfs_root *root, struct btrfs_path *path,
                                buf = tmp;
                        }
                        if (!buf) {
-                               buf = vmalloc(buf_len);
+                               buf = kvmalloc(buf_len, GFP_KERNEL);
                                if (!buf) {
                                        ret = -ENOMEM;
                                        goto out;