| From: |
| Jeff Layton <jlayton-AT-kernel.org> |
| To: |
| Miklos Szeredi <miklos-AT-szeredi.hu>, Alexander Viro <viro-AT-zeniv.linux.org.uk>, Christian Brauner <brauner-AT-kernel.org>, Jan Kara <jack-AT-suse.cz>, Chuck Lever <chuck.lever-AT-oracle.com>, Alexander Aring <alex.aring-AT-gmail.com>, Trond Myklebust <trondmy-AT-kernel.org>, Anna Schumaker <anna-AT-kernel.org>, Steve French <sfrench-AT-samba.org>, Paulo Alcantara <pc-AT-manguebit.org>, Ronnie Sahlberg <ronniesahlberg-AT-gmail.com>, Shyam Prasad N <sprasad-AT-microsoft.com>, Tom Talpey <tom-AT-talpey.com>, Bharath SM <bharathsm-AT-microsoft.com>, Greg Kroah-Hartman <gregkh-AT-linuxfoundation.org>, "Rafael J. Wysocki" <rafael-AT-kernel.org>, Danilo Krummrich <dakr-AT-kernel.org>, David Howells <dhowells-AT-redhat.com>, Tyler Hicks <code-AT-tyhicks.com>, NeilBrown <neil-AT-brown.name>, Olga Kornievskaia <okorniev-AT-redhat.com>, Dai Ngo <Dai.Ngo-AT-oracle.com>, Amir Goldstein <amir73il-AT-gmail.com>, Namjae Jeon <linkinjeon-AT-kernel.org>, Steve French <smfrench-AT-gmail.com>, Sergey Senozhatsky <senozhatsky-AT-chromium.org>, Carlos Maiolino <cem-AT-kernel.org>, Kuniyuki Iwashima <kuniyu-AT-google.com>, "David S. Miller" <davem-AT-davemloft.net>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>, Simon Horman <horms-AT-kernel.org> |
| Subject: |
| [PATCH v2 00/11] vfs: recall-only directory delegations for knfsd |
| Date: |
| Fri, 17 Oct 2025 07:31:52 -0400 |
| Message-ID: |
| <20251017-dir-deleg-ro-v2-0-8c8f6dd23c8b@kernel.org> |
| Cc: |
| linux-fsdevel-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-nfs-AT-vger.kernel.org, linux-cifs-AT-vger.kernel.org, samba-technical-AT-lists.samba.org, netfs-AT-lists.linux.dev, ecryptfs-AT-vger.kernel.org, linux-unionfs-AT-vger.kernel.org, linux-xfs-AT-vger.kernel.org, netdev-AT-vger.kernel.org, Jeff Layton <jlayton-AT-kernel.org> |
| Archive-link: |
| Article |
A smaller variation of the v1 patchset that I posted earlier this week.
Neil's review inspired me to get rid of the lm_may_setlease operation
and to do the conflict resolution internally inside of nfsd. That means
a smaller VFS-layer change, and an overall reduction in code.
This patchset adds support for directory delegations to nfsd. This
version only supports recallable delegations. There is no CB_NOTIFY
support yet. I have patches for those, but we've decided to add that
support in a later kernel once we get some experience with this part.
Anna is working on the client-side pieces.
It would be great if we could get into linux-next soon so that it can be
merged for v6.19. Christian, could you pick up the vfs/filelock patches,
and Chuck pick up the nfsd patches?
Thanks!
Jeff
[1]: https://lore.kernel.org/all/20240315-dir-deleg-v1-0-a1d62...
Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Changes in v2:
- handle lease conflict resolution inside of nfsd
- drop the lm_may_setlease lock_manager operation
- just add extra argument to vfs_create() instead of creating wrapper
- don't allocate fsnotify_mark for open directories
- Link to v1: https://lore.kernel.org/r/20251013-dir-deleg-ro-v1-0-4067...
---
Jeff Layton (11):
filelock: push the S_ISREG check down to ->setlease handlers
vfs: add try_break_deleg calls for parents to vfs_{link,rename,unlink}
vfs: allow mkdir to wait for delegation break on parent
vfs: allow rmdir to wait for delegation break on parent
vfs: break parent dir delegations in open(..., O_CREAT) codepath
vfs: make vfs_create break delegations on parent directory
vfs: make vfs_mknod break delegations on parent directory
filelock: lift the ban on directory leases in generic_setlease
nfsd: allow filecache to hold S_IFDIR files
nfsd: allow DELEGRETURN on directories
nfsd: wire up GET_DIR_DELEGATION handling
drivers/base/devtmpfs.c | 6 +--
fs/cachefiles/namei.c | 2 +-
fs/ecryptfs/inode.c | 8 +--
fs/fuse/dir.c | 1 +
fs/init.c | 4 +-
fs/locks.c | 12 +++--
fs/namei.c | 134 ++++++++++++++++++++++++++++++++++++-----------
fs/nfs/nfs4file.c | 2 +
fs/nfsd/filecache.c | 57 +++++++++++++++-----
fs/nfsd/filecache.h | 2 +
fs/nfsd/nfs3proc.c | 2 +-
fs/nfsd/nfs4proc.c | 21 +++++++-
fs/nfsd/nfs4recover.c | 6 +--
fs/nfsd/nfs4state.c | 103 +++++++++++++++++++++++++++++++++++-
fs/nfsd/state.h | 5 ++
fs/nfsd/vfs.c | 14 ++---
fs/nfsd/vfs.h | 2 +-
fs/open.c | 2 +-
fs/overlayfs/overlayfs.h | 8 +--
fs/smb/client/cifsfs.c | 3 ++
fs/smb/server/vfs.c | 8 +--
fs/xfs/scrub/orphanage.c | 2 +-
include/linux/fs.h | 11 ++--
net/unix/af_unix.c | 2 +-
24 files changed, 329 insertions(+), 88 deletions(-)
---
base-commit: 2c40814eb5ae104d3f898fd8b705ecad114105b5
change-id: 20251013-dir-deleg-ro-d0fe19823b21
Best regards,
--
Jeff Layton <jlayton@kernel.org>