btrfs: use GFP_KERNEL for xattr and acl allocations
authorDavid Sterba <dsterba@suse.com>
Thu, 3 Dec 2015 11:49:48 +0000 (12:49 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 3 Dec 2015 14:03:44 +0000 (15:03 +0100)
We don't have to use GFP_NOFS in context of ACL or XATTR actions, not
possible to loop through the allocator and it's safe to fail with
ENOMEM.

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

index 9a0124a95851014c9000ed7822dc5fad0a2f6995..dbbb8ed53a518a0ac3fa0207afe8d9041e7afba2 100644 (file)
@@ -48,7 +48,7 @@ struct posix_acl *btrfs_get_acl(struct inode *inode, int type)
 
        size = __btrfs_getxattr(inode, name, "", 0);
        if (size > 0) {
-               value = kzalloc(size, GFP_NOFS);
+               value = kzalloc(size, GFP_KERNEL);
                if (!value)
                        return ERR_PTR(-ENOMEM);
                size = __btrfs_getxattr(inode, name, value, size);
@@ -102,7 +102,7 @@ static int __btrfs_set_acl(struct btrfs_trans_handle *trans,
 
        if (acl) {
                size = posix_acl_xattr_size(acl->a_count);
-               value = kmalloc(size, GFP_NOFS);
+               value = kmalloc(size, GFP_KERNEL);
                if (!value) {
                        ret = -ENOMEM;
                        goto out;
index 1fcd7b6e7564defa675b3abe12589473a58e937d..24e8ff72273002c13295b3d5972eaf070de7da39 100644 (file)
@@ -494,7 +494,7 @@ static int btrfs_initxattrs(struct inode *inode,
 
        for (xattr = xattr_array; xattr->name != NULL; xattr++) {
                name = kmalloc(XATTR_SECURITY_PREFIX_LEN +
-                              strlen(xattr->name) + 1, GFP_NOFS);
+                              strlen(xattr->name) + 1, GFP_KERNEL);
                if (!name) {
                        err = -ENOMEM;
                        break;