From d454a27384f6eb05904a59d1607461b7ad312aa9 Mon Sep 17 00:00:00 2001 From: Liu Xiang Date: Sun, 7 Apr 2019 11:54:27 -0400 Subject: ext4: fix prefetchw of NULL page In ext4_mpage_readpages(), if the parameter pages is not NULL, another parameter page is NULL. At the first time prefetchw(&page->flags) works on NULL. From second time, prefetchw(&page->flags) always works on the last consumed page. This might do little improvment for handling current page. So prefetchw() should be called while the page pointer has just been updated. Signed-off-by: Liu Xiang Signed-off-by: Theodore Ts'o --- fs/ext4/readpage.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'fs/ext4') diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c index 3adadf461825..9386b0446afb 100644 --- a/fs/ext4/readpage.c +++ b/fs/ext4/readpage.c @@ -127,9 +127,10 @@ int ext4_mpage_readpages(struct address_space *mapping, int fully_mapped = 1; unsigned first_hole = blocks_per_page; - prefetchw(&page->flags); if (pages) { page = lru_to_page(pages); + + prefetchw(&page->flags); list_del(&page->lru); if (add_to_page_cache_lru(page, mapping, page->index, readahead_gfp_mask(mapping))) -- cgit v1.2.3