summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2017-05-31 18:40:02 +0200
committerDavid Sterba <dsterba@suse.com>2017-06-19 18:26:02 +0200
commitf11f74416ae6e63a6d6db9c5b22666a0aa57b881 (patch)
treef220aaf3c06ce30e262b80dd1073f256b34aa3e6
parent818e010bf9d02b144569898506995bcff8918875 (diff)
downloadlinux-stable-f11f74416ae6e63a6d6db9c5b22666a0aa57b881.tar.gz
linux-stable-f11f74416ae6e63a6d6db9c5b22666a0aa57b881.tar.bz2
linux-stable-f11f74416ae6e63a6d6db9c5b22666a0aa57b881.zip
btrfs: send: use kvmalloc in iterate_dir_item
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>
-rw-r--r--fs/btrfs/send.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index 924b1d941b53..7416b17c0eac 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -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;