On Tue, 2022-07-26 at 16:45 +1000, NeilBrown wrote: > This is the latest version of my series to clean up locking - > particularly of directories - in preparation for proposed patches which > change how directory locking works across the VFS. > > I've included Jeff's patches to validate the dentry after getting a > delegation. The second patch has been changed quite a bit to use > nfsd_lookup_dentry(). I've left Jeff's From: line in place - let me know > if you'd rather I change it. > That's fine. > Setting of ACLs and security labels has been moved from nfs4 code to > nfsd_setattr() which allows quite a lot of code cleanup. > > I think I've addressed all the concerns that have been raised, though > maybe not in the way that was suggested. > > I've tested this with cthon tests over v2, v3, v4.0, v4.1, and xfstests > on v3 and v4.1, and pynfs 4.0, 4.1. No problems appeared. > > Thanks, > NeilBrown > > > --- > > Jeff Layton (2): > NFSD: drop fh argument from alloc_init_deleg > NFSD: verify the opened dentry after setting a delegation > > NeilBrown (11): > NFSD: introduce struct nfsd_attrs > NFSD: set attributes when creating symlinks > NFSD: add security label to struct nfsd_attrs > NFSD: add posix ACLs to struct nfsd_attrs > NFSD: change nfsd_create()/nfsd_symlink() to unlock directory before returning. > NFSD: always drop directory lock in nfsd_unlink() > NFSD: only call fh_unlock() once in nfsd_link() > NFSD: reduce locking in nfsd_lookup() > NFSD: use explicit lock/unlock for directory ops > NFSD: use (un)lock_inode instead of fh_(un)lock for file operations > NFSD: discard fh_locked flag and fh_lock/fh_unlock > It looks like the last 5 patches are missing from the posting (everything after patch #8). > > fs/nfsd/acl.h | 6 +- > fs/nfsd/nfs2acl.c | 6 +- > fs/nfsd/nfs3acl.c | 4 +- > fs/nfsd/nfs3proc.c | 25 ++--- > fs/nfsd/nfs4acl.c | 46 ++------- > fs/nfsd/nfs4proc.c | 153 ++++++++++++----------------- > fs/nfsd/nfs4state.c | 71 +++++++++++--- > fs/nfsd/nfsfh.c | 22 ++++- > fs/nfsd/nfsfh.h | 58 +---------- > fs/nfsd/nfsproc.c | 19 ++-- > fs/nfsd/vfs.c | 230 +++++++++++++++++++++----------------------- > fs/nfsd/vfs.h | 31 ++++-- > fs/nfsd/xdr4.h | 1 + > 13 files changed, 314 insertions(+), 358 deletions(-) > > -- > Signature > -- Jeff Layton <jlayton@xxxxxxxxxx>