[PATCH v2 00/11] vfs: recall-only directory delegations for knfsd
Jeff Layton <[email protected]>
| Newsgroups | org.kernel.vger.ecryptfs,dev.linux.lists.netfs,org.kernel.vger.linux-cifs,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs,org.kernel.vger.linux-unionfs,org.kernel.vger.linux-xfs,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
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/[email protected]/ Signed-off-by: Jeff Layton <[email protected]> --- 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/[email protected] --- 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 <[email protected]>