From: Darrick J. Wong <djwong@xxxxxxxxxx> Use large folios when we're using iomap. Signed-off-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --- fs/fuse/file_iomap.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/fuse/file_iomap.c b/fs/fuse/file_iomap.c index 112cbb6cabb015..0983eabe58ffef 100644 --- a/fs/fuse/file_iomap.c +++ b/fs/fuse/file_iomap.c @@ -1339,6 +1339,7 @@ static const struct address_space_operations fuse_iomap_aops = { static inline void fuse_iomap_set_fileio(struct inode *inode) { struct fuse_inode *fi = get_fuse_inode(inode); + unsigned int min_order = 0; ASSERT(get_fuse_conn_c(inode)->iomap_fileio); @@ -1353,6 +1354,11 @@ static inline void fuse_iomap_set_fileio(struct inode *inode) INIT_WORK(&fi->ioend_work, fuse_iomap_end_io); INIT_LIST_HEAD(&fi->ioend_list); spin_lock_init(&fi->ioend_lock); + + if (inode->i_blkbits > PAGE_SHIFT) + min_order = inode->i_blkbits - PAGE_SHIFT; + + mapping_set_folio_min_order(inode->i_mapping, min_order); set_bit(FUSE_I_IOMAP_FILEIO, &fi->state); }