]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
NFSD: Define a proc_layoutcommit for the FlexFiles layout type
authorChuck Lever <chuck.lever@oracle.com>
Thu, 11 Sep 2025 15:12:06 +0000 (11:12 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Fri, 10 Oct 2025 16:53:50 +0000 (12:53 -0400)
Avoid a crash if a pNFS client should happen to send a LAYOUTCOMMIT
operation on a FlexFiles layout.

Reported-by: Robert Morris <rtm@csail.mit.edu>
Closes: https://lore.kernel.org/linux-nfs/152f99b2-ba35-4dec-93a9-4690e625dccd@oracle.com/T/#t
Cc: Thomas Haynes <loghyr@hammerspace.com>
Cc: stable@vger.kernel.org
Fixes: 9b9960a0ca47 ("nfsd: Add a super simple flex file server")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/flexfilelayout.c

index c318cf74e38894fef9c6336ff890a176a638cc7d..0f1a35400cd5f1405b6d042388e8483fe4fa046e 100644 (file)
@@ -125,6 +125,13 @@ nfsd4_ff_proc_getdeviceinfo(struct super_block *sb, struct svc_rqst *rqstp,
        return 0;
 }
 
+static __be32
+nfsd4_ff_proc_layoutcommit(struct inode *inode, struct svc_rqst *rqstp,
+               struct nfsd4_layoutcommit *lcp)
+{
+       return nfs_ok;
+}
+
 const struct nfsd4_layout_ops ff_layout_ops = {
        .notify_types           =
                        NOTIFY_DEVICEID4_DELETE | NOTIFY_DEVICEID4_CHANGE,
@@ -133,4 +140,5 @@ const struct nfsd4_layout_ops ff_layout_ops = {
        .encode_getdeviceinfo   = nfsd4_ff_encode_getdeviceinfo,
        .proc_layoutget         = nfsd4_ff_proc_layoutget,
        .encode_layoutget       = nfsd4_ff_encode_layoutget,
+       .proc_layoutcommit      = nfsd4_ff_proc_layoutcommit,
 };