[PATCHES v3][RFC][CFT] ->d_revalidate() calling conventions changes (->d_parent/->d_name stability problems)

Al Viro
2025-01-23T01:45:13Z

Series updated and force-pushed to the same place:
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git #work.d_revalidate
itself on top of #work.dcache.

Individual patches in followups; please, review.

Changes since v2:
* document that stable name passed to ->d_revalidate() may be followed by '/'
rather than NUL - in normal case it's given a pathname component in the
pathname being resolved and it doesn't have to be the last one. Basically,
it's the situation as for ->d_hash() and ->d_compare() - ->len should not
be ignored. AFS, FUSE and orangefs patches in the series ran afoul of that;
spotted (in AFS case) by dhowells. Fixed; in case of afs it used to end up
with incorrect debugging printk, in case of fuse and orangefs - stray invalidations,
unfortunately not caught by testing.

Changes since v1:
* reordered external_name members to get rid of hole on 64bit, as suggested by
dhowells.
* split the added method in two in the last commit ("9p: fix ->rename_sem exclusion")