btrfs: extent same: use GFP_KERNEL for page array allocations
authorDavid Sterba <dsterba@suse.com>
Thu, 11 Feb 2016 13:25:38 +0000 (14:25 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 11 Feb 2016 14:19:39 +0000 (15:19 +0100)
We can safely use GFP_KERNEL in the functions called from the ioctl
handlers. Here we can allocate up to 32k so less pressure to the
allocator could help.

Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c

index 952172c..55440a7 100644 (file)
@@ -2925,8 +2925,8 @@ static int btrfs_cmp_data_prepare(struct inode *src, u64 loff,
         * of the array is bounded by len, which is in turn bounded by
         * BTRFS_MAX_DEDUPE_LEN.
         */
-       src_pgarr = kzalloc(num_pages * sizeof(struct page *), GFP_NOFS);
-       dst_pgarr = kzalloc(num_pages * sizeof(struct page *), GFP_NOFS);
+       src_pgarr = kzalloc(num_pages * sizeof(struct page *), GFP_KERNEL);
+       dst_pgarr = kzalloc(num_pages * sizeof(struct page *), GFP_KERNEL);
        if (!src_pgarr || !dst_pgarr) {
                kfree(src_pgarr);
                kfree(dst_pgarr);