Re: Recent changes mean sb_min_blocksize() can now fail
From: Luis Chamberlain
Date: Tue Apr 08 2025 - 13:14:06 EST
On Tue, Apr 08, 2025 at 12:51:37PM +0200, Jan Kara wrote:
> On Tue 08-04-25 12:39:52, Jan Kara wrote:
> > Hi!
> >
> > On Tue 08-04-25 06:33:53, Phillip Lougher wrote:
> > > A recent (post 6.14) change to the kernel means sb_min_blocksize() can now fail,
> > > and any filesystem which doesn't check the result may behave unexpectedly as a
> > > result. This change has recently affected Squashfs, and checking the kernel code,
> > > a number of other filesystems including isofs, gfs2, exfat, fat and xfs do not
> > > check the result. This is a courtesy email to warn others of this change.
> > >
> > > The following emails give the relevant details.
> > >
> > > https://lore.kernel.org/all/2a13ea1c-08df-4807-83d4-241831b7a2ec@xxxxxxxxxxxxxxx/
> > > https://lore.kernel.org/all/129d4f39-6922-44e9-8b1c-6455ee564dda@xxxxxxxxxxxxxxx/
> >
> > Indeed. Thanks for the heads up!
>
> But isofs is actually fine since setting bdev block size needs exclusive open
> (i.e., has to happen before filesystem mount begins and claims bdev) and
> isofs does:
>
> if (bdev_logical_block_size(s->s_bdev) > 2048)
> bail
>
> in its isofs_fill_super().
Regardless, we added commit a64e5a596067bddb ("bdev: add back PAGE_SIZE
block size validation for sb_set_blocksize()" to effectively revert back
to the original behaviour, and so only filesystems which have FS_LBS are
not blocked by PAGE_SIZE.
Let me know if you still are seeing issues even with this patch merged.
Luis