Re: [syzbot] [fs?] WARNING in minix_unlink

From: Al Viro
Date: Sun Nov 24 2024 - 14:47:14 EST


On Sun, Nov 24, 2024 at 11:41:01AM -0800, syzbot wrote:
> Hello,
>
> syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> WARNING in minix_unlink

Predictably, since the warning has nothing to do with marking an unchanged
buffer dirty...

What happens there is that on a badly corrupt image we have an on-disk
inode with link count below the actual number of links. And after
unlinks remove enough of those to drive the link count to 0, inode
is freed. After that point, all remaining links are pointing to a freed
on-disk inode, which is discovered when they need to decrement of link
count that is already 0. Which does deserve a warning, probably without
a stack trace.

There's nothing the kernel can do about that, short of scanning the entire
filesystem at mount time and verifying that link counts are accurate...