On Fri, Sep 04, 2026 at 07:33:45AM -0700, Shakeel Butt wrote: > On Fri, Sep 04, 2026 at 10:13:11AM +0200, Christian Brauner wrote: > > On Tue, Sep 01, 2026 at 06:40:50PM -0700, Shakeel Butt wrote: > > > kernfs_test only checked two xattr calls. It did not touch the part of > > > kernfs that userspace hits most: the dentry cache. > > > > > > The kernel adds and removes kernfs nodes on its own, with no VFS call > > > behind it, and removal cannot always unhash the dentries that are > > > already cached. So ->d_revalidate() is what keeps the cache honest, > > > let's add tests for it. > > > > > > Add tests that make the kernel change kernfs directly, instead of going > > > through create and unlink: > > > > > > - writing cgroup.subtree_control makes the kernel add and remove files > > > in every child cgroup. That checks two things: a cached negative > > > dentry is dropped once the file appears, and a cached positive one > > > is dropped once the file goes away. > > > - renaming a network interface renames the sysfs node under a dentry > > > that is already cached. > > > - sysfs mounted in a new network namespace must list that namespace's > > > interfaces and not the parent's, which covers the KERNFS_NS tagging > > > code. > > > - many lookups running against concurrent mkdir and rmdir. A lookup > > > may only succeed or fail with an errno that means "it is gone". > > > - open across removal, readdir returning each entry once, and a > > > telldir()/seekdir() round trip, which uses the name hash cookie in > > > kernfs_dir_pos(). > > > > > > Test the other direction too: walking dentries that are already cached > > > must not drop them. That is not just a slowdown. d_invalidate() calls > > > detach_mounts(), so a dentry dropped by mistake also unmounts whatever > > > is mounted under that directory. > > > > > > Both filesystems are needed. cgroup2 has no ->rename and is not > > > namespace tagged. sysfs cannot be mounted with a set of children we > > > control. The config fragment stops a kernel built with kselftest-merge > > > from passing while it runs almost nothing. > > > > > > To confirm the tests really catch a broken backstop, kernfs_dir_changed() > > > was stubbed to return false. 8 of the 11 tests then failed. > > > > > > Signed-off-by: Shakeel Butt <[email protected]> > > > --- > > > > I have to say I would appreciate trimmed-down commit messages with less > > relative clauses. This reads very LLMy still. Especially for tests my > > appetite for wading through multiple paragraphs of info is very low. > > Same goes for the very wordy changelog below... > > My appologies, I will be more precise and concise in future. > > I assume the kernfs bug fixes [1] will also go to your vfs branch. I will > send a > v2 of that series with appropriate tags and will try to improve the commit > messages as well. I have a followup improvements for kernfs_rwsem which I will > base on vfs branch. Just wanted to give a headsup.
kernfs patches go through the driver-core tree normally, not vfs. thanks, greg k-h

