Re: [PATCH 1/2] iomap: support tail packing inline read

From: Gao Xiang
Date: Mon Jul 19 2021 - 09:45:59 EST


On Mon, Jul 19, 2021 at 12:19:34PM +0100, Christoph Hellwig wrote:
> On Sat, Jul 17, 2021 at 07:40:41PM +0100, Matthew Wilcox wrote:
> > Well, either sense of a WARN_ON is wrong.
> >
> > For a file which is PAGE_SIZE + 3 bytes in size, to_iomap_page() will
> > be NULL. For a file which is PAGE_SIZE/2 + 3 bytes in size,
> > to_iomap_page() will not be NULL. (assuming the block size is <=
> > PAGE_SIZE / 2).
> >
> > I think we need a prep patch that looks something like this:
>
> Something like this is where we should eventually end up, but it
> also affects the read from disk case so we need to be careful.

I also think it'd be better to leave this hunk as it-is (don't
touch it in this patch), I mean just

iop = iomap_page_create(inode, page);

as
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/iomap/buffered-io.c?id=229adf3c64dbeae4e2f45fb561907ada9fcc0d0c#n256

since iomap_read_inline_data() now calls iomap_set_range_uptodate() to
set blocks uptodate rather than SetPageUptodate() directly and we also
have iomap_page_release() as well.

Some follow-up optimized patch can be raised up independently since
it's somewhat out of current topic for now.

Thanks,
Gao Xiang