Hi Christian, do you have thoughts about this series? Any idea when you might have time to review and (hopefully) apply them?
Thanks, NeilBrown On Wed, 25 Feb 2026, NeilBrown wrote: > Following Chris Mason's tool-based review, here is v3 with some fixes. > Particularly 06/15 mistakenly tested the result of start_creating for NULL > and 09/15 had some really messed up flow in error handling. > Also human-language typos fixed. > > This code is in > github.com:neilbrown/linux.git > branch pdirops > > For anyone interested, my next batch is in branch pdirops-next > > Original patch description below. > > Thanks, > NeilBrown > > I am working towards changing the locking rules for name-operations: locking > the name rather than the whole directory. > > The current part of this process is centralising all the locking so that > it can be changed in one place. > > Recently "start_creating", "start_removing", "start_renaming" and related > interaces were added which combine the locking and the lookup. At that time > many callers were changed to use the new interfaces. However there are still > an assortment of places out side of fs/namei.c where the directory is locked > explictly, whether with inode_lock() or lock_rename() or similar. These were > missed in the first pass for an assortment of uninteresting reasons. > > This series addresses the remaining places where explicit locking is > used, and changes them to use the new interfaces, or otherwise removes > the explicit locking. > > The biggest changes are in overlayfs. The other changes are quite > simple, though maybe the cachefiles changes is the least simple of those. > > I'm running the --overlay tests in xfstests and nothing has popped yet. > I'll continue with this and run some NFS tests too. > > Thanks for your review of these patches! > > NeilBrown > > [PATCH v3 01/15] VFS: note error returns in documentation for various > [PATCH v3 02/15] fs/proc: Don't lock root inode when creating "self" > [PATCH v3 03/15] VFS: move the start_dirop() kerndoc comment to > [PATCH v3 04/15] libfs: change simple_done_creating() to use > [PATCH v3 05/15] Apparmor: Use simple_start_creating() / > [PATCH v3 06/15] selinux: Use simple_start_creating() / > [PATCH v3 07/15] nfsd: switch purge_old() to use > [PATCH v3 08/15] VFS: make lookup_one_qstr_excl() static. > [PATCH v3 09/15] ovl: Simplify ovl_lookup_real_one() > [PATCH v3 10/15] cachefiles: change cachefiles_bury_object to use > [PATCH v3 11/15] ovl: pass name buffer to ovl_start_creating_temp() > [PATCH v3 12/15] ovl: change ovl_create_real() to get a new lock when > [PATCH v3 13/15] ovl: use is_subdir() for testing if one thing is a > [PATCH v3 14/15] ovl: remove ovl_lock_rename_workdir() > [PATCH v3 15/15] VFS: unexport lock_rename(), lock_rename_child(), > >
