From: Jeff Layton <jlayton@kernel.org>
To: trondmy@gmail.com, linux-nfs@vger.kernel.org
Cc: chuck.lever@oracle.com
Subject: Re: [PATCH 00/19] OPEN optimisations and Attribute delegations
Date: Fri, 14 Jun 2024 08:34:32 -0400 [thread overview]
Message-ID: <b9f5ae349c6ff90b90aff43b86bc3de8b8a9f863.camel@kernel.org> (raw)
In-Reply-To: <20240613041136.506908-1-trond.myklebust@hammerspace.com>
On Thu, 2024-06-13 at 00:11 -0400, trondmy@gmail.com wrote:
> From: Trond Myklebust <trond.myklebust@hammerspace.com>
>
> Now that https://datatracker.ietf.org/doc/draft-ietf-nfsv4-delstid/ is
> mostly done with the review process, it is time to look at pushing the
> client implementation that we've been working on upstream.
>
> The following patch series therefore adds support for the NFSv4.2
> extension to OP_OPEN to allow the client to request that the server
> return either an open stateid or a delegation instead of always sending
> the open stateid whether or not a delegation is returned.
> This allows us to optimise away CLOSE, and hence makes small or cached
> file access significantly more efficient.
>
> It also adds support for attribute delegations, which allow the client
> to manage the atime and mtime, and simply inform the server at file
> close time what the values should be. This means that most GETATTR
> operations to retrieve the atime/mtime values while the file is under
> I/O can be optimised away.
>
> Finally, we also add support for the detection mechanism that allows the
> client to determine whether or not the server supports the above
> functionality.
>
> Lance Shelton (1):
> NFS: Add a generic callback to return the delegation
>
> Trond Myklebust (18):
> NFSv4: Clean up open delegation return structure
> NFSv4: Refactor nfs4_opendata_check_deleg()
> NFSv4: Add new attribute delegation definitions
> NFSv4: Plumb in XDR support for the new delegation-only setattr op
> NFSv4: Add CB_GETATTR support for delegated attributes
> NFSv4: Add a flags argument to the 'have_delegation' callback
> NFSv4: Add support for delegated atime and mtime attributes
> NFSv4: Add recovery of attribute delegations
> NFSv4: Add a capability for delegated attributes
> NFSv4: Enable attribute delegations
> NFSv4: Delegreturn must set m/atime when they are delegated
> NFSv4: Fix up delegated attributes in nfs_setattr
> NFSv4: Don't request atime/mtime/size if they are delegated to us
> NFSv4: Add support for the FATTR4_OPEN_ARGUMENTS attribute
> NFSv4: Detect support for OPEN4_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION
> NFSv4: Add support for OPEN4_RESULT_NO_OPEN_STATEID
> NFSv4: Ask for a delegation or an open stateid in OPEN
> Return the delegation when deleting the sillyrenamed file
>
> fs/nfs/callback.h | 5 +-
> fs/nfs/callback_proc.c | 14 ++-
> fs/nfs/callback_xdr.c | 39 ++++++-
> fs/nfs/delegation.c | 59 ++++++----
> fs/nfs/delegation.h | 45 +++++++-
> fs/nfs/dir.c | 2 +-
> fs/nfs/file.c | 4 +-
> fs/nfs/inode.c | 104 +++++++++++++++--
> fs/nfs/nfs3proc.c | 10 +-
> fs/nfs/nfs4proc.c | 230 ++++++++++++++++++++++++++++----------
> fs/nfs/nfs4xdr.c | 131 +++++++++++++++++-----
> fs/nfs/proc.c | 10 +-
> fs/nfs/read.c | 3 +
> fs/nfs/unlink.c | 2 +
> fs/nfs/write.c | 11 +-
> include/linux/nfs4.h | 11 ++
> include/linux/nfs_fs_sb.h | 2 +
> include/linux/nfs_xdr.h | 45 +++++++-
> include/uapi/linux/nfs4.h | 4 +
> 19 files changed, 586 insertions(+), 145 deletions(-)
>
This all looks pretty reasonable except for the last two patches.
Probably, they should be squashed together since there is no caller of
->return_delegation until the last one. There is also nothing
describing the changes there, and I think it could use some explanation
(though I think I get what you're doing).
Finally, I suppose we need to look at implementing support delstid in
knfsd as well. I'll open a new feature request for that the linux-nfs
project on github.
In any case, you can add:
Reviewed-by: Jeff Layton <jlayton@kernel.org>
next prev parent reply other threads:[~2024-06-14 12:34 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-13 4:11 [PATCH 00/19] OPEN optimisations and Attribute delegations trondmy
2024-06-13 4:11 ` [PATCH 01/19] NFSv4: Clean up open delegation return structure trondmy
2024-06-13 4:11 ` [PATCH 02/19] NFSv4: Refactor nfs4_opendata_check_deleg() trondmy
2024-06-13 4:11 ` [PATCH 03/19] NFSv4: Add new attribute delegation definitions trondmy
2024-06-13 4:11 ` [PATCH 04/19] NFSv4: Plumb in XDR support for the new delegation-only setattr op trondmy
2024-06-13 4:11 ` [PATCH 05/19] NFSv4: Add CB_GETATTR support for delegated attributes trondmy
2024-06-13 4:11 ` [PATCH 06/19] NFSv4: Add a flags argument to the 'have_delegation' callback trondmy
2024-06-13 4:11 ` [PATCH 07/19] NFSv4: Add support for delegated atime and mtime attributes trondmy
2024-06-13 4:11 ` [PATCH 08/19] NFSv4: Add recovery of attribute delegations trondmy
2024-06-13 4:11 ` [PATCH 09/19] NFSv4: Add a capability for delegated attributes trondmy
2024-06-13 4:11 ` [PATCH 10/19] NFSv4: Enable attribute delegations trondmy
2024-06-13 4:11 ` [PATCH 11/19] NFSv4: Delegreturn must set m/atime when they are delegated trondmy
2024-06-13 4:11 ` [PATCH 12/19] NFSv4: Fix up delegated attributes in nfs_setattr trondmy
2024-06-13 4:11 ` [PATCH 13/19] NFSv4: Don't request atime/mtime/size if they are delegated to us trondmy
2024-06-13 4:11 ` [PATCH 14/19] NFSv4: Add support for the FATTR4_OPEN_ARGUMENTS attribute trondmy
2024-06-13 4:11 ` [PATCH 15/19] NFSv4: Detect support for OPEN4_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION trondmy
2024-06-13 4:11 ` [PATCH 16/19] NFSv4: Add support for OPEN4_RESULT_NO_OPEN_STATEID trondmy
2024-06-13 4:11 ` [PATCH 17/19] NFSv4: Ask for a delegation or an open stateid in OPEN trondmy
2024-06-13 4:11 ` [PATCH 18/19] NFS: Add a generic callback to return the delegation trondmy
2024-06-13 4:11 ` [PATCH 19/19] Return the delegation when deleting the sillyrenamed file trondmy
2024-06-14 16:32 ` [PATCH 12/19] NFSv4: Fix up delegated attributes in nfs_setattr Anna Schumaker
2024-06-14 19:59 ` Trond Myklebust
2024-06-15 0:25 ` Trond Myklebust
2024-06-13 20:26 ` [PATCH 07/19] NFSv4: Add support for delegated atime and mtime attributes Anna Schumaker
2024-06-14 12:34 ` Jeff Layton [this message]
2024-06-15 6:27 ` [PATCH 00/19] OPEN optimisations and Attribute delegations Christoph Hellwig
2024-06-17 1:39 ` Trond Myklebust
2024-06-17 5:35 ` hch
2024-06-15 6:25 ` Christoph Hellwig
2024-06-17 1:28 ` Trond Myklebust
2024-06-17 5:37 ` hch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b9f5ae349c6ff90b90aff43b86bc3de8b8a9f863.camel@kernel.org \
--to=jlayton@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trondmy@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox