* [PATCH] NFSD: Fix NFSv4's PUTPUBFH operation
@ 2024-08-11 17:26 cel
2024-09-19 12:50 ` Cedric Blancher
0 siblings, 1 reply; 3+ messages in thread
From: cel @ 2024-08-11 17:26 UTC (permalink / raw)
To: linux-nfs; +Cc: Chuck Lever, Cedric Blancher, Dan Shelton, Roland Mainz
From: Chuck Lever <chuck.lever@oracle.com>
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>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
fs/nfsd/nfs4xdr.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 42b41d55d4ed..adfafe48b947 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -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)
{
@@ -2374,7 +2366,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,
--
2.45.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] NFSD: Fix NFSv4's PUTPUBFH operation
2024-08-11 17:26 [PATCH] NFSD: Fix NFSv4's PUTPUBFH operation cel
@ 2024-09-19 12:50 ` Cedric Blancher
2024-09-19 13:46 ` Chuck Lever III
0 siblings, 1 reply; 3+ messages in thread
From: Cedric Blancher @ 2024-09-19 12:50 UTC (permalink / raw)
To: cel; +Cc: linux-nfs, Chuck Lever, Dan Shelton, Roland Mainz
Could this bugfix please be added to the Linux 6.6 LTS branch too?
Ced
On Sun, 11 Aug 2024 at 19:26, <cel@kernel.org> wrote:
>
> From: Chuck Lever <chuck.lever@oracle.com>
>
> 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>
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
> fs/nfsd/nfs4xdr.c | 10 +---------
> 1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
> index 42b41d55d4ed..adfafe48b947 100644
> --- a/fs/nfsd/nfs4xdr.c
> +++ b/fs/nfsd/nfs4xdr.c
> @@ -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)
> {
> @@ -2374,7 +2366,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,
> --
> 2.45.2
>
--
Cedric Blancher <cedric.blancher@gmail.com>
[https://plus.google.com/u/0/+CedricBlancher/]
Institute Pasteur
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] NFSD: Fix NFSv4's PUTPUBFH operation
2024-09-19 12:50 ` Cedric Blancher
@ 2024-09-19 13:46 ` Chuck Lever III
0 siblings, 0 replies; 3+ messages in thread
From: Chuck Lever III @ 2024-09-19 13:46 UTC (permalink / raw)
To: Cedric Blancher
Cc: Chuck Lever, Linux NFS Mailing List, Dan Shelton, Roland Mainz
> On Sep 19, 2024, at 5:50 AM, Cedric Blancher <cedric.blancher@gmail.com> wrote:
>
> Could this bugfix please be added to the Linux 6.6 LTS branch too?
Once I submit the pull request for v6.12, the stable folks should
see this patch has a Fixes: tag and pull it into all the LTS trees.
I'll try to remember to check on it once the v6.12 merge window
closes.
> Ced
>
> On Sun, 11 Aug 2024 at 19:26, <cel@kernel.org> wrote:
>>
>> From: Chuck Lever <chuck.lever@oracle.com>
>>
>> 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>
>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>> ---
>> fs/nfsd/nfs4xdr.c | 10 +---------
>> 1 file changed, 1 insertion(+), 9 deletions(-)
>>
>> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
>> index 42b41d55d4ed..adfafe48b947 100644
>> --- a/fs/nfsd/nfs4xdr.c
>> +++ b/fs/nfsd/nfs4xdr.c
>> @@ -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)
>> {
>> @@ -2374,7 +2366,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,
>> --
>> 2.45.2
>>
>
>
> --
> Cedric Blancher <cedric.blancher@gmail.com>
> [https://plus.google.com/u/0/+CedricBlancher/]
> Institute Pasteur
--
Chuck Lever
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-09-19 13:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-11 17:26 [PATCH] NFSD: Fix NFSv4's PUTPUBFH operation cel
2024-09-19 12:50 ` Cedric Blancher
2024-09-19 13:46 ` Chuck Lever III
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.