]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ext2: avoid drop_nlink() during unlink of zero-nlink inode in ext2_unlink()
authorZiyi Guo <n7l8m4@u.northwestern.edu>
Wed, 11 Feb 2026 02:20:52 +0000 (02:20 +0000)
committerJan Kara <jack@suse.cz>
Fri, 27 Feb 2026 11:17:52 +0000 (12:17 +0100)
commit19134a133184fcc49c41cf42797cb2e7fef76065
tree5156473ba4d4bf5c0c4beda473e6665a4e286778
parentad0e9663f0f5b0ed8e27d3690c5ac9de72243fba
ext2: avoid drop_nlink() during unlink of zero-nlink inode in ext2_unlink()

ext2_unlink() calls inode_dec_link_count() unconditionally, which
invokes drop_nlink(). If the inode was loaded from a corrupted disk
image with i_links_count == 0, drop_nlink()
triggers WARN_ON(inode->i_nlink == 0)

Follow the ext4 pattern from __ext4_unlink(): check i_nlink before
decrementing. If already zero, skip the decrement.

Signed-off-by: Ziyi Guo <n7l8m4@u.northwestern.edu>
Link: https://patch.msgid.link/20260211022052.973114-1-n7l8m4@u.northwestern.edu
Signed-off-by: Jan Kara <jack@suse.cz>
fs/ext2/namei.c