NFSv4.2: Fix up an invalid combination of memory allocation flags
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Sat, 29 Jan 2022 19:03:06 +0000 (14:03 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Fri, 25 Feb 2022 23:50:12 +0000 (18:50 -0500)
We should use either GFP_KERNEL or GFP_NOFS, but not both. Also strip
GFP_KERNEL_ACCOUNT down to GFP_KERNEL. This memory is shrinkable, so
does not need to be limited by kmemcg.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs42xattr.c

index 1c4d2a0..ad3405c 100644 (file)
@@ -199,7 +199,7 @@ nfs4_xattr_alloc_entry(const char *name, const void *value,
                flags = NFS4_XATTR_ENTRY_EXTVAL;
        }
 
-       buf = kmalloc(alloclen, GFP_KERNEL_ACCOUNT | GFP_NOFS);
+       buf = kmalloc(alloclen, GFP_KERNEL);
        if (buf == NULL)
                return NULL;
        entry = (struct nfs4_xattr_entry *)buf;
@@ -213,7 +213,7 @@ nfs4_xattr_alloc_entry(const char *name, const void *value,
 
 
        if (flags & NFS4_XATTR_ENTRY_EXTVAL) {
-               valp = kvmalloc(len, GFP_KERNEL_ACCOUNT | GFP_NOFS);
+               valp = kvmalloc(len, GFP_KERNEL);
                if (valp == NULL) {
                        kfree(buf);
                        return NULL;
@@ -289,8 +289,7 @@ nfs4_xattr_alloc_cache(void)
 {
        struct nfs4_xattr_cache *cache;
 
-       cache = kmem_cache_alloc(nfs4_xattr_cache_cachep,
-           GFP_KERNEL_ACCOUNT | GFP_NOFS);
+       cache = kmem_cache_alloc(nfs4_xattr_cache_cachep, GFP_KERNEL);
        if (cache == NULL)
                return NULL;