[PATCH 0/3] smb/client(cifs): prepare for locking changes.
From: NeilBrown
Date: Sun Sep 27 2026 - 21:28:34 EST
I am working on changes to directory locking. The medium term goal is
to lift d_alloc_parallel() locking above i_rwsem, so d_alloc_paralle()
can be run unlocked, and consequently cannot be called when ->i_rwsem is
held.
The requires:
1/ that d_alloc_parallel() not be called while i_rwsem is held. cifs
does this in a couple of places. A new interface d_alloc_trylock()
is now available and can be used instead.
2/ a dentry must not be d_drop()ed while an operation is ongoing, as an
unlocked d_alloc_parallel() would then be able to create a new
dentry with the same name. In particular d_rehash() must be phased
out as it won't be safe. This particularly affects the mechanism to
block lookups/revalidates while an unlink/rename is happening. The
mechanism is changed to use one similar to how NFS addresses this
needed, though using the new LOOKUP_PRIVATE flag.
The patches depend on patches recently added to the vfs tree. I would
prefer these land in that tree too with an Acked-by or similar from cifs
maintainers.
Thanks,
NeilBrown
[PATCH 1/3] smb/client: don't unhash and rehash to prevent new opens.
[PATCH 2/3] smb/client: use d_alloc_trylock in cifs_silly_fullpath()
[PATCH 3/3] smb/client: Use d_alloc_trylock() in cifs_prime_dcache()