The most interesting part here is getting rid of the last trylock loop on dentry->d_lock - the ones in fs/dcache.c had been dealt with several years ago, but there'd been leftovers in fs/autofs/expire.c The following changes since commit 5f9e832c137075045d15cd6899ab0505cfb2ca4b: Linus 5.3-rc1 (2019-07-21 14:05:38 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.autofs for you to fetch changes up to 5f68056ca50fdd3954a93ae66fea7452abddb66f: autofs_lookup(): hold ->d_lock over playing with ->d_flags (2019-07-27 10:03:14 -0400) ---------------------------------------------------------------- Al Viro (3): autofs: simplify get_next_positive_...(), get rid of trylocks get rid of autofs_info->active_count autofs_lookup(): hold ->d_lock over playing with ->d_flags fs/autofs/autofs_i.h | 1 - fs/autofs/expire.c | 103 ++++++++++++++++----------------------------------- fs/autofs/root.c | 44 ++++++---------------- 3 files changed, 44 insertions(+), 104 deletions(-)