OSDN Git Service

btrfs: Use kvmalloc for allocating compressed path context
authorNikolay Borisov <nborisov@suse.com>
Mon, 1 Apr 2019 08:29:57 +0000 (11:29 +0300)
committerDavid Sterba <dsterba@suse.com>
Thu, 2 May 2019 11:48:19 +0000 (13:48 +0200)
commitb1c16ac978fd40ae636e629bb69a652df7eebdc2
tree85fcec89523e78e9e44acb95186238245a48f06c
parent7447555fe7765d7823f5db7760bfdeba035b7bad
btrfs: Use kvmalloc for allocating compressed path context

Recent refactoring of cow_file_range_async means it's now possible to
request a rather large physically contiguous memory via kmalloc. The
size is dependent on the number of 512k chunks that the compressed range
consists of. David reported multiple OOM messages on such large
allocations. Fix it by switching to using kvmalloc.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c