From: trondmy@kernel.org
To: linux-nfs@vger.kernel.org
Subject: [PATCH v2 00/19] OPEN optimisations and Attribute delegations
Date: Sun, 16 Jun 2024 21:21:18 -0400 [thread overview]
Message-ID: <20240617012137.674046-1-trondmy@kernel.org> (raw)
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.
v2:
- Fix issues when compiling without CONFIG_NFS_V4
- Update "NFSv4: Fix up delegated attributes in nfs_setattr" to fix
regressions pointed out by Anna Schumaker
- Squash commits "NFSv4: Ask for a delegation or an open stateid in
OPEN" and "Return the delegation when deleting the sillyrenamed file"
as suggested by Jeff Layton
- Add "NFSv4: Don't send delegation-related share access modes to
CLOSE"
Lance Shelton (1):
Return the delegation when deleting sillyrenamed files
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
NFSv4: Don't send delegation-related share access modes to CLOSE
fs/nfs/callback.h | 5 +-
fs/nfs/callback_proc.c | 14 ++-
fs/nfs/callback_xdr.c | 39 +++++-
fs/nfs/delegation.c | 67 ++++++----
fs/nfs/delegation.h | 45 ++++++-
fs/nfs/dir.c | 2 +-
fs/nfs/file.c | 4 +-
fs/nfs/inode.c | 86 +++++++++++--
fs/nfs/nfs3proc.c | 10 +-
fs/nfs/nfs4proc.c | 248 ++++++++++++++++++++++++++++----------
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, 589 insertions(+), 150 deletions(-)
--
2.45.2
next reply other threads:[~2024-06-17 1:25 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-17 1:21 trondmy [this message]
2024-06-17 1:21 ` [PATCH v2 01/19] NFSv4: Clean up open delegation return structure trondmy
2024-06-17 1:21 ` [PATCH v2 02/19] NFSv4: Refactor nfs4_opendata_check_deleg() trondmy
2024-06-17 1:21 ` [PATCH v2 03/19] NFSv4: Add new attribute delegation definitions trondmy
2024-06-17 1:21 ` [PATCH v2 04/19] NFSv4: Plumb in XDR support for the new delegation-only setattr op trondmy
2024-06-17 1:21 ` [PATCH v2 05/19] NFSv4: Add CB_GETATTR support for delegated attributes trondmy
2024-06-17 1:21 ` [PATCH v2 06/19] NFSv4: Add a flags argument to the 'have_delegation' callback trondmy
2024-06-17 1:21 ` [PATCH v2 07/19] NFSv4: Add support for delegated atime and mtime attributes trondmy
2024-06-17 1:21 ` [PATCH v2 08/19] NFSv4: Add recovery of attribute delegations trondmy
2024-06-17 1:21 ` [PATCH v2 09/19] NFSv4: Add a capability for delegated attributes trondmy
2024-06-17 1:21 ` [PATCH v2 10/19] NFSv4: Enable attribute delegations trondmy
2024-06-17 1:21 ` [PATCH v2 11/19] NFSv4: Delegreturn must set m/atime when they are delegated trondmy
2024-06-17 1:21 ` [PATCH v2 12/19] NFSv4: Fix up delegated attributes in nfs_setattr trondmy
2024-06-17 1:21 ` [PATCH v2 13/19] NFSv4: Don't request atime/mtime/size if they are delegated to us trondmy
2024-06-17 1:21 ` [PATCH v2 14/19] NFSv4: Add support for the FATTR4_OPEN_ARGUMENTS attribute trondmy
2024-06-17 1:21 ` [PATCH v2 15/19] NFSv4: Detect support for OPEN4_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION trondmy
2024-06-17 1:21 ` [PATCH v2 16/19] NFSv4: Add support for OPEN4_RESULT_NO_OPEN_STATEID trondmy
2024-06-17 1:21 ` [PATCH v2 17/19] NFSv4: Ask for a delegation or an open stateid in OPEN trondmy
2024-06-17 1:21 ` [PATCH v2 18/19] Return the delegation when deleting sillyrenamed files trondmy
2024-06-17 1:21 ` [PATCH v2 19/19] NFSv4: Don't send delegation-related share access modes to CLOSE trondmy
2024-10-18 18:56 ` [PATCH v2 11/19] NFSv4: Delegreturn must set m/atime when they are delegated Jeff Layton
2024-10-23 13:35 ` [PATCH] NFS: Fix attribute delegation behaviour on exclusive create trondmy
2024-10-23 14:45 ` Jeff Layton
2024-06-17 23:51 ` [PATCH v2 00/19] OPEN optimisations and Attribute delegations Olga Kornievskaia
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=20240617012137.674046-1-trondmy@kernel.org \
--to=trondmy@kernel.org \
--cc=linux-nfs@vger.kernel.org \
/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