From: Jeff Layton <jlayton@kernel.org>
To: Chuck Lever <chuck.lever@oracle.com>, NeilBrown <neil@brown.name>,
Olga Kornievskaia <okorniev@redhat.com>,
Dai Ngo <Dai.Ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
Trond Myklebust <trondmy@kernel.org>,
Anna Schumaker <anna@kernel.org>
Cc: Alexander Aring <alex.aring@gmail.com>,
Amir Goldstein <amir73il@gmail.com>, Jan Kara <jack@suse.cz>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>,
Calum Mackay <calum.mackay@oracle.com>,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
linux-nfs@vger.kernel.org, Jeff Layton <jlayton@kernel.org>,
"Steven Rostedt (Google)" <rostedt@goodmis.org>
Subject: [PATCH v4 00/21] nfsd: add support for CB_NOTIFY callbacks in directory delegations
Date: Fri, 22 May 2026 08:28:49 -0400 [thread overview]
Message-ID: <20260522-dir-deleg-v4-0-2acb883ac6bc@kernel.org> (raw)
This repost is just a rebase of the series on top of Chuck's
nfsd-testing branch. That branch is now based on Christian's
v7.2.directory.delegations branch, so this part contains the nfsd
bits.
Original cover letter follows:
---------------------------------8<------------------------------------
This patchset builds on the directory delegation work we did a few
months ago, to add support for CB_NOTIFY callbacks for some events. In
particular, creates, unlinks and renames. The server also sends updated
directory attributes in the notifications. With this support, the client
can register interest in a directory and get notifications about changes
within it without losing its lease.
The series starts with patches to allow the vfs to ignore certain types
of events on directories. nfsd can then request these sorts of
delegations on directories, and then set up inotify watches on the
directory to trigger sending CB_NOTIFY events.
This has mainly been tested with pynfs, with some new testcases that
I'll be posting soon. They seem to work fine with those tests, but I
don't think we'll want to merge these until we have a complete
client-side implementation to test against.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Changes in v4:
- Rebase onto Chuck's nfsd-testing branch. Minor contextual fixups.
- Link to v3: https://lore.kernel.org/r/20260428-dir-deleg-v3-0-5a0780ba9def@kernel.org
Changes in v3:
- Fix error handling in alloc_init_dir_deleg()
- Link to v2: https://lore.kernel.org/r/20260416-dir-deleg-v2-0-851426a550f6@kernel.org
Changes in v2:
- Fix __break_lease handling with different lease types on flc_lease list
- Add FSNOTIFY_EVENT_RENAME data type to properly handle cross-directory rename events
- Display fsnotify mask symbolically in tracepoints
- New tracepoint in fsnotify()
- Recalc fsnotify mask after unlocking lease instead of before
- Don't notify client that is making the changes
- After sending CB_NOTIFY, requeue if new events came in while running
- Document removal of NFS4_VERIFIER_SIZE/NFS4_FHSIZE from UAPI headers
- Properly release nfsd_dir_fsnotify_group on server shutdown
- Link to v1: https://lore.kernel.org/r/20260407-dir-deleg-v1-0-aaf68c478abd@kernel.org
---
Jeff Layton (21):
nfsd: check fl_lmops in nfsd_breaker_owns_lease()
nfsd: add protocol support for CB_NOTIFY
nfs_common: add new NOTIFY4_* flags proposed in RFC8881bis
nfsd: allow nfsd to get a dir lease with an ignore mask
nfsd: update the fsnotify mark when setting or removing a dir delegation
nfsd: make nfsd4_callback_ops->prepare operation bool return
nfsd: add callback encoding and decoding linkages for CB_NOTIFY
nfsd: use RCU to protect fi_deleg_file
nfsd: add data structures for handling CB_NOTIFY
nfsd: add notification handlers for dir events
nfsd: add tracepoint to dir_event handler
nfsd: apply the notify mask to the delegation when requested
nfsd: add helper to marshal a fattr4 from completed args
nfsd: allow nfsd4_encode_fattr4_change() to work with no export
nfsd: send basic file attributes in CB_NOTIFY
nfsd: allow encoding a filehandle into fattr4 without a svc_fh
nfsd: add a fi_connectable flag to struct nfs4_file
nfsd: add the filehandle to returned attributes in CB_NOTIFY
nfsd: properly track requested child attributes
nfsd: track requested dir attributes
nfsd: add support to CB_NOTIFY for dir attribute changes
Documentation/sunrpc/xdr/nfs4_1.x | 264 ++++++++++++++-
fs/nfsd/filecache.c | 70 +++-
fs/nfsd/nfs4callback.c | 60 +++-
fs/nfsd/nfs4layouts.c | 5 +-
fs/nfsd/nfs4proc.c | 17 +
fs/nfsd/nfs4state.c | 551 ++++++++++++++++++++++++++++----
fs/nfsd/nfs4xdr.c | 324 +++++++++++++++++--
fs/nfsd/nfs4xdr_gen.c | 601 ++++++++++++++++++++++++++++++++++-
fs/nfsd/nfs4xdr_gen.h | 20 +-
fs/nfsd/state.h | 72 ++++-
fs/nfsd/trace.h | 23 ++
fs/nfsd/xdr4.h | 5 +
fs/nfsd/xdr4cb.h | 12 +
include/linux/nfs4.h | 127 --------
include/linux/sunrpc/xdrgen/nfs4_1.h | 291 ++++++++++++++++-
include/uapi/linux/nfs4.h | 2 -
16 files changed, 2184 insertions(+), 260 deletions(-)
---
base-commit: 33e9ab952a864ae00bce7e47c3e9add1c4b3d3a3
change-id: 20260325-dir-deleg-339066dd1017
Best regards,
--
Jeff Layton <jlayton@kernel.org>
next reply other threads:[~2026-05-22 12:29 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-22 12:28 Jeff Layton [this message]
2026-05-22 12:28 ` [PATCH v4 01/21] nfsd: check fl_lmops in nfsd_breaker_owns_lease() Jeff Layton
2026-05-22 12:28 ` [PATCH v4 02/21] nfsd: add protocol support for CB_NOTIFY Jeff Layton
2026-05-22 12:28 ` [PATCH v4 03/21] nfs_common: add new NOTIFY4_* flags proposed in RFC8881bis Jeff Layton
2026-06-08 16:23 ` Chuck Lever
2026-06-08 16:37 ` Jeff Layton
2026-05-22 12:28 ` [PATCH v4 04/21] nfsd: allow nfsd to get a dir lease with an ignore mask Jeff Layton
2026-05-22 12:28 ` [PATCH v4 05/21] nfsd: update the fsnotify mark when setting or removing a dir delegation Jeff Layton
2026-05-22 12:28 ` [PATCH v4 06/21] nfsd: make nfsd4_callback_ops->prepare operation bool return Jeff Layton
2026-05-22 12:28 ` [PATCH v4 07/21] nfsd: add callback encoding and decoding linkages for CB_NOTIFY Jeff Layton
2026-05-22 12:28 ` [PATCH v4 08/21] nfsd: use RCU to protect fi_deleg_file Jeff Layton
2026-05-22 12:28 ` [PATCH v4 09/21] nfsd: add data structures for handling CB_NOTIFY Jeff Layton
2026-05-22 12:28 ` [PATCH v4 10/21] nfsd: add notification handlers for dir events Jeff Layton
2026-05-22 12:29 ` [PATCH v4 11/21] nfsd: add tracepoint to dir_event handler Jeff Layton
2026-05-22 14:31 ` Steven Rostedt
2026-05-22 14:37 ` Jeff Layton
2026-05-22 12:29 ` [PATCH v4 12/21] nfsd: apply the notify mask to the delegation when requested Jeff Layton
2026-05-22 12:29 ` [PATCH v4 13/21] nfsd: add helper to marshal a fattr4 from completed args Jeff Layton
2026-05-22 12:29 ` [PATCH v4 14/21] nfsd: allow nfsd4_encode_fattr4_change() to work with no export Jeff Layton
2026-05-22 12:29 ` [PATCH v4 15/21] nfsd: send basic file attributes in CB_NOTIFY Jeff Layton
2026-05-22 12:29 ` [PATCH v4 16/21] nfsd: allow encoding a filehandle into fattr4 without a svc_fh Jeff Layton
2026-05-22 12:29 ` [PATCH v4 17/21] nfsd: add a fi_connectable flag to struct nfs4_file Jeff Layton
2026-05-22 12:29 ` [PATCH v4 18/21] nfsd: add the filehandle to returned attributes in CB_NOTIFY Jeff Layton
2026-05-22 12:29 ` [PATCH v4 19/21] nfsd: properly track requested child attributes Jeff Layton
2026-05-22 12:29 ` [PATCH v4 20/21] nfsd: track requested dir attributes Jeff Layton
2026-05-22 13:24 ` Chuck Lever
2026-05-22 12:29 ` [PATCH v4 21/21] nfsd: add support to CB_NOTIFY for dir attribute changes Jeff Layton
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=20260522-dir-deleg-v4-0-2acb883ac6bc@kernel.org \
--to=jlayton@kernel.org \
--cc=Dai.Ngo@oracle.com \
--cc=alex.aring@gmail.com \
--cc=amir73il@gmail.com \
--cc=anna@kernel.org \
--cc=brauner@kernel.org \
--cc=calum.mackay@oracle.com \
--cc=chuck.lever@oracle.com \
--cc=jack@suse.cz \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neil@brown.name \
--cc=okorniev@redhat.com \
--cc=rostedt@goodmis.org \
--cc=tom@talpey.com \
--cc=trondmy@kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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