Message ID | 20210719184001.1750630-8-willy@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Folio support in block + iomap layers | expand |
On Mon, Jul 19, 2021 at 07:39:51PM +0100, Matthew Wilcox (Oracle) wrote: > This is an address_space operation, so its argument must remain as a > struct page, but we can use a folio internally. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Looks good, Reviewed-by: Christoph Hellwig <hch@lst.de>
On Mon, Jul 19, 2021 at 07:39:51PM +0100, Matthew Wilcox (Oracle) wrote: > This is an address_space operation, so its argument must remain as a > struct page, but we can use a folio internally. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Looks good! Reviewed-by: Darrick J. Wong <djwong@kernel.org> --D > --- > fs/iomap/buffered-io.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c > index 715b25a1c1e6..0d7b6ef4c5cc 100644 > --- a/fs/iomap/buffered-io.c > +++ b/fs/iomap/buffered-io.c > @@ -480,15 +480,15 @@ iomap_invalidatepage(struct page *page, unsigned int offset, unsigned int len) > { > struct folio *folio = page_folio(page); > > - trace_iomap_invalidatepage(page->mapping->host, offset, len); > + trace_iomap_invalidatepage(folio->mapping->host, offset, len); > > /* > * If we are invalidating the entire page, clear the dirty state from it > * and release it to avoid unnecessary buildup of the LRU. > */ > - if (offset == 0 && len == PAGE_SIZE) { > - WARN_ON_ONCE(PageWriteback(page)); > - cancel_dirty_page(page); > + if (offset == 0 && len == folio_size(folio)) { > + WARN_ON_ONCE(folio_test_writeback(folio)); > + folio_cancel_dirty(folio); > iomap_page_release(folio); > } > } > -- > 2.30.2 >
diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 715b25a1c1e6..0d7b6ef4c5cc 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -480,15 +480,15 @@ iomap_invalidatepage(struct page *page, unsigned int offset, unsigned int len) { struct folio *folio = page_folio(page); - trace_iomap_invalidatepage(page->mapping->host, offset, len); + trace_iomap_invalidatepage(folio->mapping->host, offset, len); /* * If we are invalidating the entire page, clear the dirty state from it * and release it to avoid unnecessary buildup of the LRU. */ - if (offset == 0 && len == PAGE_SIZE) { - WARN_ON_ONCE(PageWriteback(page)); - cancel_dirty_page(page); + if (offset == 0 && len == folio_size(folio)) { + WARN_ON_ONCE(folio_test_writeback(folio)); + folio_cancel_dirty(folio); iomap_page_release(folio); } }
This is an address_space operation, so its argument must remain as a struct page, but we can use a folio internally. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- fs/iomap/buffered-io.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)