diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c
index 3adadf4618253c69fe5fcd50ffb3628027a079f9..9386b0446afb3ff7b77e17b8e31855c5d4eef84b 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)))