fs/dcache.c work, mostly - part of that is what trylock elimination series has turned into, part - making d_move() preserve the parent (and thus the path) of victim, plus some general cleanups. The following changes since commit 8cc07c808c9d595e81cbe5aad419b7769eb2e5c9: fs: dcache: Use READ_ONCE when accessing i_dir_seq (2018-02-25 12:51:10 -0500) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.dcache for you to fetch changes up to 04bbc9795d2e89c79edf48fb1303ace2e8c90a60: Merge branch 'old.dcache' into work.dcache (2018-04-04 00:40:19 -0400) ---------------------------------------------------------------- Al Viro (19): take write_seqcount_invalidate() into __d_drop() d_delete(): get rid of trylock loop get rid of trylock loop in locking dentries on shrink list now lock_parent() can't run into killed dentry split the slow part of lock_parent() off dput(): consolidate the "do we need to retain it?" into an inlined helper handle move to LRU in retain_dentry() get rid of trylock loop around dentry_kill() dcache.c: trim includes split d_path() and friends into a separate file take out orphan externs (empty_string/slash_string) fold lookup_real() into __lookup_hash() debugfs_lookup(): switch to lookup_one_len_unlocked() lustre: get rid of pointless casts to struct dentry * oprofilefs: don't oops on allocation failure make non-exchanging __d_move() copy ->d_parent rather than swap them fold dentry_lock_for_move() into its sole caller and clean it up d_genocide: move export to definition Merge branch 'old.dcache' into work.dcache John Ogness (3): fs/dcache: Remove stale comment from dentry_kill() fs/dcache: Move dentry_kill() below lock_parent() fs/dcache: Avoid a try_lock loop in shrink_dentry_list() NeilBrown (1): constify more dcache.h inlined helpers. drivers/oprofile/oprofilefs.c | 3 + drivers/staging/lustre/lustre/llite/dcache.c | 6 +- fs/Makefile | 2 +- fs/d_path.c | 470 +++++++++++++ fs/dcache.c | 966 +++++++-------------------- fs/debugfs/inode.c | 5 +- fs/namei.c | 41 +- include/linux/dcache.h | 6 +- 8 files changed, 735 insertions(+), 764 deletions(-) create mode 100644 fs/d_path.c