Re: [PATCH v2] iomap: Support inline data with block size < page size
From: Matthew Wilcox <willy@infradead.org>
Date: 2021-07-29 12:44:32
Also in:
linux-fsdevel
From: Matthew Wilcox <willy@infradead.org>
Date: 2021-07-29 12:44:32
Also in:
linux-fsdevel
On Thu, Jul 29, 2021 at 05:54:56AM +0200, Andreas Gruenbacher wrote:
quoted
- /* 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!
quoted
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.