mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-16 22:13:31 +00:00
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>
This commit is contained in:
parent
e59e97d42b
commit
3c20917120
@ -148,6 +148,8 @@ static void set_init_blocksize(struct block_device *bdev)
|
||||
bsize <<= 1;
|
||||
}
|
||||
BD_INODE(bdev)->i_blkbits = blksize_bits(bsize);
|
||||
mapping_set_folio_min_order(BD_INODE(bdev)->i_mapping,
|
||||
get_order(bsize));
|
||||
}
|
||||
|
||||
int set_blocksize(struct file *file, int size)
|
||||
@ -169,6 +171,7 @@ int set_blocksize(struct file *file, int size)
|
||||
if (inode->i_blkbits != blksize_bits(size)) {
|
||||
sync_blockdev(bdev);
|
||||
inode->i_blkbits = blksize_bits(size);
|
||||
mapping_set_folio_min_order(inode->i_mapping, get_order(size));
|
||||
kill_bdev(bdev);
|
||||
}
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user