[PATCH v2] iomap: Support inline data with block size < page size
Matthew Wilcox
willy at infradead.org
Thu Jul 29 22:43:38 AEST 2021
On Thu, Jul 29, 2021 at 05:54:56AM +0200, Andreas Gruenbacher wrote:
> > - /* inline data must start page aligned in the file */
> > - if (WARN_ON_ONCE(offset_in_page(iomap->offset)))
> > - return -EIO;
>
> Maybe add a WARN_ON_ONCE(size > PAGE_SIZE - poff) here?
Sure!
> > if (WARN_ON_ONCE(size > PAGE_SIZE -
> > offset_in_page(iomap->inline_data)))
> > return -EIO;
> > if (WARN_ON_ONCE(size > iomap->length))
> > return -EIO;
> > - if (WARN_ON_ONCE(page_has_private(page)))
> > - return -EIO;
> > + if (poff > 0)
> > + iomap_page_create(inode, page);
> >
> > - addr = kmap_atomic(page);
> > + addr = kmap_atomic(page) + poff;
>
> Maybe kmap_local_page?
Heh, I do that later when I convert to folios (there is no
kmap_atomic_folio(), only kmap_local_folio()). But I can throw that
in here too.
More information about the Linux-erofs
mailing list