On Wed, 2024-03-20 at 14:42 +0100, Christian Brauner wrote: > > int vfs_mknod(struct mnt_idmap *, struct inode *, struct dentry *, > > - umode_t, dev_t); > > + umode_t, dev_t, struct inode **); > > So we will have at least the following helpers with an additional > delegated inode argument. > > vfs_unlink() > vfs_link() > notify_change() > vfs_create() > vfs_mknod() > vfs_mkdir() > vfs_rmdir() > > From looking at callers all these helpers will be called with non-NULL > delegated inode argument in vfs only. Unless it is generally conceivable > that other callers will want to pass a non-NULL inode argument over time > it might make more sense to add vfs_<operation>_delegated() or > __vfs_<operation>() and make vfs_mknod() and friends exported wrappers > around it. > > I mean it's a matter of preference ultimately but this seems cleaner to > me. So at least for the new ones we should consider it. Would also make > the patch smaller. > Good suggestion. I just respun along those lines and it's a lot cleaner. I'm still testing it but here is the new diffstat. It's a little larger actually, but it keeps the changes more confined to namei.c: jlayton@tleilax:~/git/linux$ git diff master --stat fs/locks.c | 12 +++- fs/namei.c | 227 ++++++++++++++++++++++++++++++++++++++++++++++-------------------- fs/nfs/delegation.c | 5 ++ fs/nfs/dir.c | 20 ++++++ fs/nfs/internal.h | 2 +- fs/nfs/nfs4file.c | 2 + fs/nfs/nfs4proc.c | 62 +++++++++++++++++- fs/nfs/nfs4trace.h | 104 ++++++++++++++++++++++++++++++ fs/nfs/nfs4xdr.c | 136 +++++++++++++++++++++++++++++++++++++++ fs/nfs/nfstrace.h | 8 ++- fs/nfsd/filecache.c | 37 +++++++++-- fs/nfsd/filecache.h | 2 + fs/nfsd/nfs4proc.c | 48 ++++++++++++++ fs/nfsd/nfs4state.c | 113 ++++++++++++++++++++++++++++++++- fs/nfsd/nfs4xdr.c | 91 ++++++++++++++++++++++++++- fs/nfsd/state.h | 5 ++ fs/nfsd/vfs.c | 5 +- fs/nfsd/vfs.h | 2 +- fs/nfsd/xdr4.h | 19 ++++++ fs/smb/client/cifsfs.c | 3 + include/linux/filelock.h | 14 +++++ include/linux/nfs4.h | 7 +++ include/linux/nfs_fs.h | 1 + include/linux/nfs_fs_sb.h | 1 + include/linux/nfs_xdr.h | 2 + 25 files changed, 838 insertions(+), 90 deletions(-) -- Jeff Layton <jlayton@xxxxxxxxxx>