NFSD: Fix NFSv4's PUTPUBFH operation
commit 202f39039a11402dcbcd5fece8d9fa6be83f49ae upstream. 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 Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5b22601874
commit
770d812d36
1 changed files with 1 additions and 9 deletions
|
@ -1245,14 +1245,6 @@ nfsd4_decode_putfh(struct nfsd4_compoundargs *argp, union nfsd4_op_u *u)
|
|||
return nfs_ok;
|
||||
}
|
||||
|
||||
static __be32
|
||||
nfsd4_decode_putpubfh(struct nfsd4_compoundargs *argp, union nfsd4_op_u *p)
|
||||
{
|
||||
if (argp->minorversion == 0)
|
||||
return nfs_ok;
|
||||
return nfserr_notsupp;
|
||||
}
|
||||
|
||||
static __be32
|
||||
nfsd4_decode_read(struct nfsd4_compoundargs *argp, union nfsd4_op_u *u)
|
||||
{
|
||||
|
@ -2345,7 +2337,7 @@ static const nfsd4_dec nfsd4_dec_ops[] = {
|
|||
[OP_OPEN_CONFIRM] = nfsd4_decode_open_confirm,
|
||||
[OP_OPEN_DOWNGRADE] = nfsd4_decode_open_downgrade,
|
||||
[OP_PUTFH] = nfsd4_decode_putfh,
|
||||
[OP_PUTPUBFH] = nfsd4_decode_putpubfh,
|
||||
[OP_PUTPUBFH] = nfsd4_decode_noop,
|
||||
[OP_PUTROOTFH] = nfsd4_decode_noop,
|
||||
[OP_READ] = nfsd4_decode_read,
|
||||
[OP_READDIR] = nfsd4_decode_readdir,
|
||||
|
|
Loading…
Add table
Reference in a new issue