OSDN Git Service

btrfs: use GFP_KERNEL in create_snapshot
authorDavid Sterba <dsterba@suse.com>
Mon, 13 Feb 2017 10:03:44 +0000 (11:03 +0100)
committerDavid Sterba <dsterba@suse.com>
Fri, 17 Feb 2017 11:03:48 +0000 (12:03 +0100)
We don't need to use GFP_NOFS here as this is called from ioctls an the
only lock held is the subvol_sem, which is of a high level and protects
creation/renames/deletion and is never held in the writeout paths.

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

index 77f93a1..f65ace5 100644 (file)
@@ -670,12 +670,12 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir,
        if (!test_bit(BTRFS_ROOT_REF_COWS, &root->state))
                return -EINVAL;
 
-       pending_snapshot = kzalloc(sizeof(*pending_snapshot), GFP_NOFS);
+       pending_snapshot = kzalloc(sizeof(*pending_snapshot), GFP_KERNEL);
        if (!pending_snapshot)
                return -ENOMEM;
 
        pending_snapshot->root_item = kzalloc(sizeof(struct btrfs_root_item),
-                       GFP_NOFS);
+                       GFP_KERNEL);
        pending_snapshot->path = btrfs_alloc_path();
        if (!pending_snapshot->root_item || !pending_snapshot->path) {
                ret = -ENOMEM;