diff mbox series

[5.4] NFSD: Fix NFSv4's PUTPUBFH operation

Message ID 20241110184510.20129-1-cel@kernel.org (mailing list archive)
State New
Headers show
Series [5.4] NFSD: Fix NFSv4's PUTPUBFH operation | expand

Commit Message

Chuck Lever Nov. 10, 2024, 6:45 p.m. UTC
From: Chuck Lever <chuck.lever@oracle.com>

[ Upstream commit 202f39039a11402dcbcd5fece8d9fa6be83f49ae ]

According to RFC 8881, all minor versions of NFSv4 support PUTPUBFH.

Replace the XDR decoder for PUTPUBFH with a "noop" since we no
longer want the minorversion check, and PUTPUBFH has no arguments to
decode. (Ideally nfsd4_decode_noop should really be called
nfsd4_decode_void).

PUTPUBFH should now behave just like PUTROOTFH.

Reported-by: Cedric Blancher <cedric.blancher@gmail.com>
Fixes: e1a90ebd8b23 ("NFSD: Combine decode operations for v4 and v4.1")
Cc: Dan Shelton <dan.f.shelton@gmail.com>
Cc: Roland Mainz <roland.mainz@nrubsig.org>
Cc: stable@vger.kernel.org
[ cel: adjusted to apply to origin/linux-5.4.y ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 fs/nfsd/nfs4xdr.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

In response to:

https://lore.kernel.org/stable/2024100703-decorated-bodacious-fa3c@gregkh/

here is a version of upstream commit 202f39039a11 ("NFSD: Fix
NFSv4's PUTPUBFH operation") that applies to both origin/linux-5.4.y
and origin/linux-4.19.y.

Comments

Greg KH Nov. 12, 2024, 8:29 a.m. UTC | #1
On Sun, Nov 10, 2024 at 01:45:10PM -0500, cel@kernel.org wrote:
> From: Chuck Lever <chuck.lever@oracle.com>
> 
> [ Upstream commit 202f39039a11402dcbcd5fece8d9fa6be83f49ae ]
> 
> According to RFC 8881, all minor versions of NFSv4 support PUTPUBFH.
> 
> Replace the XDR decoder for PUTPUBFH with a "noop" since we no
> longer want the minorversion check, and PUTPUBFH has no arguments to
> decode. (Ideally nfsd4_decode_noop should really be called
> nfsd4_decode_void).
> 
> PUTPUBFH should now behave just like PUTROOTFH.
> 
> Reported-by: Cedric Blancher <cedric.blancher@gmail.com>
> Fixes: e1a90ebd8b23 ("NFSD: Combine decode operations for v4 and v4.1")
> Cc: Dan Shelton <dan.f.shelton@gmail.com>
> Cc: Roland Mainz <roland.mainz@nrubsig.org>
> Cc: stable@vger.kernel.org
> [ cel: adjusted to apply to origin/linux-5.4.y ]
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
>  fs/nfsd/nfs4xdr.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> In response to:
> 
> https://lore.kernel.org/stable/2024100703-decorated-bodacious-fa3c@gregkh/

Now queued up, thanks.

greg k-h
diff mbox series

Patch

diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 1d24fff2709c..55b18c145390 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -1068,14 +1068,6 @@  nfsd4_decode_putfh(struct nfsd4_compoundargs *argp, struct nfsd4_putfh *putfh)
 	DECODE_TAIL;
 }
 
-static __be32
-nfsd4_decode_putpubfh(struct nfsd4_compoundargs *argp, void *p)
-{
-	if (argp->minorversion == 0)
-		return nfs_ok;
-	return nfserr_notsupp;
-}
-
 static __be32
 nfsd4_decode_read(struct nfsd4_compoundargs *argp, struct nfsd4_read *read)
 {
@@ -1825,7 +1817,7 @@  static const nfsd4_dec nfsd4_dec_ops[] = {
 	[OP_OPEN_CONFIRM]	= (nfsd4_dec)nfsd4_decode_open_confirm,
 	[OP_OPEN_DOWNGRADE]	= (nfsd4_dec)nfsd4_decode_open_downgrade,
 	[OP_PUTFH]		= (nfsd4_dec)nfsd4_decode_putfh,
-	[OP_PUTPUBFH]		= (nfsd4_dec)nfsd4_decode_putpubfh,
+	[OP_PUTPUBFH]		= (nfsd4_dec)nfsd4_decode_noop,
 	[OP_PUTROOTFH]		= (nfsd4_dec)nfsd4_decode_noop,
 	[OP_READ]		= (nfsd4_dec)nfsd4_decode_read,
 	[OP_READDIR]		= (nfsd4_dec)nfsd4_decode_readdir,