This adds support for part of the "delstid" draft: https://datatracker.ietf.org/doc/draft-ietf-nfsv4-delstid/05/ Specifically, this adds support for the OPEN_XOR_DELEGATION part of the draft. That allows the client to avoid issuing CLOSE compounds when it holds a delegation. For the XDR handling, I used Chuck's new lkxdrgen tool to generate the relevant boilerplate, and then hand tweaked it in places to work around bugs in the decoder, naming conflicts, etc. I've left the encoders and decoders for the delegated timestamp handling in the XDR patch, but I'm still studying that piece and it isn't implemented yet. That may require some timestamp handling surgery at the VFS layer. I think it's doable and may actually be simpler to implement on top of the multigrain work. Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> --- Jeff Layton (3): nfsd: bring in support for delstid draft XDR encoding nfsd: add support for FATTR4_OPEN_ARGUMENTS nfsd: implement OPEN_ARGS_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION fs/nfsd/Makefile | 2 +- fs/nfsd/delstid_xdr.c | 464 ++++++++++++++++++++++++++++++++++++++++++++++ fs/nfsd/delstid_xdr.h | 105 +++++++++++ fs/nfsd/nfs4state.c | 29 ++- fs/nfsd/nfs4xdr.c | 57 +++++- fs/nfsd/nfsd.h | 3 +- include/uapi/linux/nfs4.h | 7 +- 7 files changed, 658 insertions(+), 9 deletions(-) --- base-commit: 6d0cd2727ed2cf725b1f20dc4e2d0d138c1cf117 change-id: 20240815-delstid-93290691ad11 Best regards, -- Jeff Layton <jlayton@xxxxxxxxxx>