[PATCH v5 18/39] iomap: Inline data shouldn't see large pages

From: Matthew Wilcox
Date: Thu May 28 2020 - 23:03:54 EST


From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx>

Assert that we're not seeing large pages in functions that read/write
inline data, rather than zeroing out the tail.

Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
---
fs/iomap/buffered-io.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index 8767241ae535..5b37844b7d97 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -221,6 +221,7 @@ iomap_read_inline_data(struct inode *inode, struct page *page,
return;

BUG_ON(page->index);
+ BUG_ON(PageCompound(page));
BUG_ON(size > PAGE_SIZE - offset_in_page(iomap->inline_data));

addr = kmap_atomic(page);
@@ -736,6 +737,7 @@ iomap_write_end_inline(struct inode *inode, struct page *page,
void *addr;

WARN_ON_ONCE(!PageUptodate(page));
+ BUG_ON(PageCompound(page));
BUG_ON(pos + copied > PAGE_SIZE - offset_in_page(iomap->inline_data));

addr = kmap_atomic(page);
--
2.26.2