]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
NFS: Update getacl to use xdr_set_scratch_folio()
authorAnna Schumaker <anna.schumaker@oracle.com>
Mon, 30 Jun 2025 14:32:29 +0000 (10:32 -0400)
committerAnna Schumaker <anna.schumaker@oracle.com>
Tue, 23 Sep 2025 17:29:50 +0000 (13:29 -0400)
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
fs/nfs/nfs4proc.c
fs/nfs/nfs4xdr.c
include/linux/nfs_xdr.h

index 4de3e4bd724b7ee8d5eb0b862706b48f67141ff6..a5085820ec0a746a6bd2f51e0d0bb880ba0c8aa5 100644 (file)
@@ -6160,7 +6160,7 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf,
        }
 
        /* for decoding across pages */
-       res.acl_scratch = alloc_page(GFP_KERNEL);
+       res.acl_scratch = folio_alloc(GFP_KERNEL, 0);
        if (!res.acl_scratch)
                goto out_free;
 
@@ -6196,7 +6196,7 @@ out_free:
        while (--i >= 0)
                __free_page(pages[i]);
        if (res.acl_scratch)
-               __free_page(res.acl_scratch);
+               folio_put(res.acl_scratch);
        kfree(pages);
        return ret;
 }
index 4ee88a4c1daa09d2db1d294e22f3ea2389814ab6..1d0e6c10f921fa16b2e1f3f9cc11dbb7036027af 100644 (file)
@@ -6585,7 +6585,7 @@ nfs4_xdr_dec_getacl(struct rpc_rqst *rqstp, struct xdr_stream *xdr,
        int status;
 
        if (res->acl_scratch != NULL)
-               xdr_set_scratch_page(xdr, res->acl_scratch);
+               xdr_set_scratch_folio(xdr, res->acl_scratch);
        status = decode_compound_hdr(xdr, &hdr);
        if (status)
                goto out;
index ac4bff6e99135f6275801c29012b829aefb45f22..7823d4574e296042e5edbfa2b71f99f38ec24da0 100644 (file)
@@ -862,7 +862,7 @@ struct nfs_getaclres {
        size_t                          acl_len;
        size_t                          acl_data_offset;
        int                             acl_flags;
-       struct page *                   acl_scratch;
+       struct folio *                  acl_scratch;
 };
 
 struct nfs_setattrres {