]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
befs: handle set_blocksize failures
authorChristoph Hellwig <hch@lst.de>
Mon, 11 May 2026 07:16:50 +0000 (09:16 +0200)
committerChristian Brauner <brauner@kernel.org>
Thu, 21 May 2026 11:39:35 +0000 (13:39 +0200)
befs uses buffer_heads, which don't handle block size > PAGE_SIZE well.
Without this, mounting we will hit the

        BUG_ON(offset >= folio_size(folio));

in folio_set_bh on the first __bread_gfp call.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20260511071701.2456211-6-hch@lst.de
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/befs/linuxvfs.c

index c12caae9a96799b0a57e6cb5010de756f8b86346..ee0cbae521b9f581a4ffa727b2294299bbe7300c 100644 (file)
@@ -860,7 +860,8 @@ befs_fill_super(struct super_block *sb, struct fs_context *fc)
         */
        sb->s_magic = BEFS_SUPER_MAGIC;
        /* Set real blocksize of fs */
-       sb_set_blocksize(sb, (ulong) befs_sb->block_size);
+       if (!sb_set_blocksize(sb, (ulong) befs_sb->block_size))
+               goto unacquire_priv_sbp;
        sb->s_op = &befs_sops;
        sb->s_export_op = &befs_export_operations;
        sb->s_time_min = 0;