Re: [PATCH] fs: Add additional checks for block devices during mount

From: Zizhi Wo
Date: Sat Jul 19 2025 - 00:46:50 EST




在 2025/7/19 12:17, Al Viro 写道:
On Sat, Jul 19, 2025 at 10:44:03AM +0800, Zizhi Wo wrote:

mkfs.ext4 -F /dev/sdb
mount /dev/sdb /mnt
mknod /dev/test b 8 16 # [sdb 8:16]
echo 1 > /sys/block/sdb/device/delete
mount /dev/test /mnt1 # -> mount success

Therefore, it is necessary to add an extra check. Solve this problem by
checking disk_live() in super_s_dev_test().

That smells like a wrong approach... You are counting upon the failure
of setup_bdev_super() after the thing is forced on the "no reuse" path,
and that's too convoluted and brittle...


Since this problem can only occur in the superblock reuse scenario, and
the .test function used in sget_fc() for bdev filesystems is
super_s_dev_test(), I considered adding an additional condition check
within that function.

I'm wondering if there's a better way to handle this...

Thanks,
Zizhi Wo