Skip to content

Commit 3c20917

Browse files
hreineckebrauner
authored andcommitted
block/bdev: enable large folio support for large logical block sizes
Call mapping_set_folio_min_order() when modifying the logical block size to ensure folios are allocated with the correct size. Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Reviewed-by: "Matthew Wilcox (Oracle)" <willy@infradead.org> Signed-off-by: Hannes Reinecke <hare@suse.de> Link: https://lore.kernel.org/r/20250221223823.1680616-7-mcgrof@kernel.org Reviewed-by: John Garry <john.g.garry@oracle.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent e59e97d commit 3c20917

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

block/bdev.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ static void set_init_blocksize(struct block_device *bdev)
148148
bsize <<= 1;
149149
}
150150
BD_INODE(bdev)->i_blkbits = blksize_bits(bsize);
151+
mapping_set_folio_min_order(BD_INODE(bdev)->i_mapping,
152+
get_order(bsize));
151153
}
152154

153155
int set_blocksize(struct file *file, int size)
@@ -169,6 +171,7 @@ int set_blocksize(struct file *file, int size)
169171
if (inode->i_blkbits != blksize_bits(size)) {
170172
sync_blockdev(bdev);
171173
inode->i_blkbits = blksize_bits(size);
174+
mapping_set_folio_min_order(inode->i_mapping, get_order(size));
172175
kill_bdev(bdev);
173176
}
174177
return 0;

0 commit comments

Comments
 (0)