Re: [PATCH 1/4] ext4: Convert move_extent_per_page() to use folios

From: Matthew Wilcox
Date: Wed Nov 16 2022 - 03:12:24 EST


On Tue, Nov 15, 2022 at 06:10:08PM -0800, Vishal Moola (Oracle) wrote:
> {
> struct inode *orig_inode = file_inode(o_filp);
> struct page *pagep[2] = {NULL, NULL};
> + struct folio *folio[2] = {NULL, NULL};

I have a feeling that mext_page_double_lock() should also be converted
to use folios. But this makes me nervous:

int blocks_per_page = PAGE_SIZE >> orig_inode->i_blkbits;

and I'm not sure what will happen if one or both of the orig_page
and donor_page is large -- possibly different sizes of large.

Obviously ext4 doesn't allow large folios today, but it would be good to
get some reasoning about why this isn't laying a trap for later (or at
least assertions that neither folio is large so that there's an obvious
scream instead of silent data corruption).