[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251021-dir-deleg-ro-v3-0-a08b1cde9f4c@kernel.org>
Date: Tue, 21 Oct 2025 11:25:35 -0400
From: Jeff Layton <jlayton@...nel.org>
To: Miklos Szeredi <miklos@...redi.hu>,
Alexander Viro <viro@...iv.linux.org.uk>,
Christian Brauner <brauner@...nel.org>, Jan Kara <jack@...e.cz>,
Chuck Lever <chuck.lever@...cle.com>,
Alexander Aring <alex.aring@...il.com>,
Trond Myklebust <trondmy@...nel.org>, Anna Schumaker <anna@...nel.org>,
Steve French <sfrench@...ba.org>, Paulo Alcantara <pc@...guebit.org>,
Ronnie Sahlberg <ronniesahlberg@...il.com>,
Shyam Prasad N <sprasad@...rosoft.com>, Tom Talpey <tom@...pey.com>,
Bharath SM <bharathsm@...rosoft.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael@...nel.org>, Danilo Krummrich <dakr@...nel.org>,
David Howells <dhowells@...hat.com>, Tyler Hicks <code@...icks.com>,
NeilBrown <neil@...wn.name>, Olga Kornievskaia <okorniev@...hat.com>,
Dai Ngo <Dai.Ngo@...cle.com>, Amir Goldstein <amir73il@...il.com>,
Namjae Jeon <linkinjeon@...nel.org>, Steve French <smfrench@...il.com>,
Sergey Senozhatsky <senozhatsky@...omium.org>,
Carlos Maiolino <cem@...nel.org>, Kuniyuki Iwashima <kuniyu@...gle.com>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Simon Horman <horms@...nel.org>
Cc: linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-nfs@...r.kernel.org, linux-cifs@...r.kernel.org,
samba-technical@...ts.samba.org, netfs@...ts.linux.dev,
ecryptfs@...r.kernel.org, linux-unionfs@...r.kernel.org,
linux-xfs@...r.kernel.org, netdev@...r.kernel.org,
Jeff Layton <jlayton@...nel.org>
Subject: [PATCH v3 00/13] vfs: recall-only directory delegations for knfsd
Behold, another version of directory delegations. This version contains
support for recall-only delegations. Support for CB_NOTIFY will be
forthcoming (once the client-side patches have caught up).
This main differences in this version are bugfixes, but the last patch
adds a more formal API for userland to request a delegation. That
support is optional. We can drop it and the rest of the series should be
fine.
My main interest in making delegations available to userland is to allow
testing this support without nfsd. I have an xfstest ready to submit for
this if that support looks acceptable. If it is, then I'll also plan to
submit an update for fcntl(2).
Christian, Chuck mentioned he was fine with you merging the nfsd bits
too, if you're willing to take the whole pile.
Thanks!
Jeff
Signed-off-by: Jeff Layton <jlayton@...nel.org>
---
Changes in v3:
- Fix potential nfsd_file refcount leaks on GET_DIR_DELEGATION error
- Add missing parent dir deleg break in vfs_symlink()
- Add F_SETDELEG/F_GETDELEG support to fcntl()
- Link to v2: https://lore.kernel.org/r/20251017-dir-deleg-ro-v2-0-8c8f6dd23c8b@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-406780a70e5e@kernel.org
---
Jeff Layton (13):
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
vfs: make vfs_symlink break delegations on parent dir
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
vfs: expose delegation support to userland
drivers/base/devtmpfs.c | 6 +-
fs/cachefiles/namei.c | 2 +-
fs/ecryptfs/inode.c | 10 +--
fs/fcntl.c | 9 +++
fs/fuse/dir.c | 1 +
fs/init.c | 6 +-
fs/locks.c | 68 +++++++++++++++-----
fs/namei.c | 150 +++++++++++++++++++++++++++++++++++----------
fs/nfs/nfs4file.c | 2 +
fs/nfsd/filecache.c | 57 ++++++++++++-----
fs/nfsd/filecache.h | 2 +
fs/nfsd/nfs3proc.c | 2 +-
fs/nfsd/nfs4proc.c | 22 ++++++-
fs/nfsd/nfs4recover.c | 6 +-
fs/nfsd/nfs4state.c | 103 ++++++++++++++++++++++++++++++-
fs/nfsd/state.h | 5 ++
fs/nfsd/vfs.c | 16 ++---
fs/nfsd/vfs.h | 2 +-
fs/open.c | 2 +-
fs/overlayfs/overlayfs.h | 10 +--
fs/smb/client/cifsfs.c | 3 +
fs/smb/server/vfs.c | 8 +--
fs/xfs/scrub/orphanage.c | 2 +-
include/linux/filelock.h | 12 ++++
include/linux/fs.h | 13 ++--
include/uapi/linux/fcntl.h | 10 +++
net/unix/af_unix.c | 2 +-
27 files changed, 425 insertions(+), 106 deletions(-)
---
base-commit: d2ced3cadfab04c7e915adf0a73c53fcf1642719
change-id: 20251013-dir-deleg-ro-d0fe19823b21
Best regards,
--
Jeff Layton <jlayton@...nel.org>
Powered by blists - more mailing lists