ext4,f2fs: fix readahead of verity data
Subsystems (2)
Eric Biggers
maintainerPATCH 1/1 ext4,f2fs: fix readahead of verity data
From: "Matthew Wilcox (Oracle)" <[email protected]>
commit 4fa0e3ff217f775cb58d2d6d51820ec519243fb9 upstream.
The recent change of page_cache_ra_unbounded() arguments was buggy in the two callers, causing us to readahead the wrong pages. Move the definition of ractl down to after the index is set correctly. This affected performance on configurations that use fs-verity.
Fixes 73bb49da50cd ("mm/readahead: make page_cache_ra_unbounded take a readahead_control")
Signed-off-by Matthew Wilcox (Oracle) <[email protected]>
Reported-by Jintao Yin <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
Signed-off-by Eric Biggers <[email protected]>
--- fs/ext4/verity.c | 3 ++- fs/f2fs/verity.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
fs/ext4/verity.c +2 -1
@@ -370,13 +370,14 @@ static struct page *ext4_read_merkle_tree_page(struct inode *inode,pgoff_t index, unsigned long num_ra_pages) { - DEFINE_READAHEAD(ractl, NULL, inode->i_mapping, index); struct page *page; index +=ext4_verity_metadata_pos (inode) >>PAGE_SHIFT ; page =find_get_page_flags (inode->i_mapping, index,FGP_ACCESSED );if (!page || !PageUptodate (page)) { +DEFINE_READAHEAD (ractl,NULL , inode->i_mapping, index); +if (page)put_page (page);else if (num_ra_pages >1 )
fs/f2fs/verity.c +2 -1
@@ -261,13 +261,14 @@ static struct page *f2fs_read_merkle_tree_page(struct inode *inode,pgoff_t index, unsigned long num_ra_pages) { - DEFINE_READAHEAD(ractl, NULL, inode->i_mapping, index); struct page *page; index +=f2fs_verity_metadata_pos (inode) >>PAGE_SHIFT ; page =find_get_page_flags (inode->i_mapping, index,FGP_ACCESSED );if (!page || !PageUptodate (page)) { +DEFINE_READAHEAD (ractl,NULL , inode->i_mapping, index); +if (page)put_page (page);else if (num_ra_pages >1 )
Signature · 8 lines
2.38.1 _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel