Re: [PATCH 1/1] nfsd: fix handling of WANT_DELEG_TIMESTAMPS on open

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Sep 20, 2024, at 12:34 PM, Jeff Layton <jlayton@xxxxxxxxxx> wrote:
> 
> On Fri, 2024-09-20 at 16:30 +0000, Chuck Lever III wrote:
>> 
>>> On Sep 20, 2024, at 12:24 PM, Jeff Layton <jlayton@xxxxxxxxxx> wrote:
>>> 
>>> On Fri, 2024-09-20 at 12:05 -0400, Olga Kornievskaia wrote:
>>>> Current, the server returns that it supports NFS4_SHARE_WANT_DELEG_TIMESTAMPS
>>>> but when the client sends that on the open, knfsd returns back with
>>>> bad_xdr error.
>>>> 
>>>> Fixes: d0eab73d48a0 ("nfsd: add support for delegated timestamps")
>>>> Signed-off-by: Olga Kornievskaia <okorniev@xxxxxxxxxx>
>>>> ---
>>>> fs/nfsd/nfs4xdr.c | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>> 
>>>> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
>>>> index c0bad580ab6d..adda8b489175 100644
>>>> --- a/fs/nfsd/nfs4xdr.c
>>>> +++ b/fs/nfsd/nfs4xdr.c
>>>> @@ -1109,6 +1109,7 @@ static __be32 nfsd4_decode_share_access(struct nfsd4_compoundargs *argp, u32 *sh
>>>> case NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED:
>>>> case (NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL |
>>>>      NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED):
>>>> + case NFS4_SHARE_WANT_DELEG_TIMESTAMPS:
>>>> return nfs_ok;
>>>> }
>>>> return nfserr_bad_xdr;
>>> 
>>> Ouch.
>>> 
>>> The problem here is that we had to drop the patch that added
>>> OPEN_XOR_DELEGATION support. That patch reworked the flag handling in
>>> this function in a way that allowed the new delstid flags to be
>>> properly supported.
>>> 
>>> I think we probably want to resurrect the parts of this patch that
>>> alter nfsd4_decode_share_access:
>>> 
>>> https://lore.kernel.org/linux-nfs/20240905-delstid-v4-8-d3e5fd34d107@xxxxxxxxxx/
>>> 
>>> Olga, would you be OK with that approach instead?
>> 
>> At this point, I'd like to consider postponing the delstid patches
>> until v6.13. They haven't gotten enough testing in their current
>> form...
> 
> It's your call, but that seems like an extreme reaction to a flag
> handling fix, given that we have several weeks of -rc's ahead of us.

It's not just this small problem that worries me.

I pulled in v4 of the delstid patches pretty much at the last
moment for v6.12 development. So far, there's been an 80%
performance regression, and the surgery to work around that
issue introduced another bug that invalidates all NFSv4.2 test
results since that surgery, just a week ago.

The delstid patches impact an already heavily-used code path
(OPEN). You've already found one or two bugs in the client
side as well. This isn't something the can be disabled by
distros until it is ready -- it's baked into a popular code
path as soon as it goes upstream, and NFSv4.2 is the current
default.

So I can't say with confidence that this code is stable and
ready to merge. If we had another week or two before v6.11
final, there wouldn't be a question, but it's already a week
into the v6.12 merge window, and I need to submit a pull
request in the next few days. A 6.11-rc8 would have been
extremely helpful, but we didn't get one.

Exposing this change set to the cauldron that is bake-a-thon
would be valuable, IMO, for both the client and the server.


--
Chuck Lever






[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux