]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
kernfs: Don't set_nlink for directories being removed
authorT.J. Mercier <tjmercier@google.com>
Wed, 25 Feb 2026 22:34:02 +0000 (14:34 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Mar 2026 14:51:03 +0000 (15:51 +0100)
commit507d8ce13f5b91d5b4dca7bd4b4e4249e8021cca
treed6f87fb271fcc1d96a0908f077a64df6976b26da
parentf917dc56060a10f401dd8ca46a1c5df237b35d84
kernfs: Don't set_nlink for directories being removed

If a directory is already in the process of removal its i_nlink count
becomes irrelevant because its contents are also about to be removed and
any pending filesystem operations on it or its contents will soon start
to fail. So we can avoid setting it for directories already flagged for
removal.

This avoids a race in the next patch, which adds clearing of the i_nlink
count for kernfs nodes being removed to support inotify delete events.

Use protection from the kernfs_iattr_rwsem to avoid adding more
contention to the kernfs_rwsem for calls to kernfs_refresh_inode.

Signed-off-by: T.J. Mercier <tjmercier@google.com>
Tested-by: syzbot@syzkaller.appspotmail.com
Link: https://patch.msgid.link/20260225223404.783173-2-tjmercier@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/kernfs/dir.c
fs/kernfs/inode.c