On 1 July 2018 at 08:21, Christoph Hellwig <hch@xxxxxx> wrote: > Looks sensible, although I think it could use some more sanity checking > and a changelog. Does the version below work for you? Almost. > --- > From e4603b7acde9b77e7a4aad6038c7ac42ca35772d Mon Sep 17 00:00:00 2001 > From: Andreas Gruenbacher <agruenba@xxxxxxxxxx> > Date: Fri, 29 Jun 2018 16:44:44 +0200 > Subject: iomap: Add inline data support to iomap_readpage_actor > > Just copy the inline data into the page using the existing helper. > > Signed-off-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/iomap.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/fs/iomap.c b/fs/iomap.c > index 4d8ff0f5ecc9..966ffad9706a 100644 > --- a/fs/iomap.c > +++ b/fs/iomap.c > @@ -155,6 +155,13 @@ iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data, > bool is_contig = false; > sector_t sector; > > + if (iomap->type == IOMAP_INLINE) { > + WARN_ON_ONCE(poff); This is ok. > + WARN_ON_ONCE(plen != PAGE_SIZE); Inline mappings only extend to the end of the file (iomap->offset == 0 && iomap->length == inode->i_size), so length and plen will be inode->i_size here. This assertion should just be removed. > + iomap_read_inline_data(inode, page, iomap); > + return PAGE_SIZE; > + } > + > /* we don't support blocksize < PAGE_SIZE quite yet. */ > WARN_ON_ONCE(pos != page_offset(page)); > WARN_ON_ONCE(plen != PAGE_SIZE); > -- > 2.18.0 > Thanks, Andreas