From: "Matthew Wilcox (Oracle)" <wi...@infradead.org>

If the page is already in cache, we don't set PageReadahead on it.

Signed-off-by: Matthew Wilcox (Oracle) <wi...@infradead.org>
Reviewed-by: Christoph Hellwig <h...@lst.de>
Reviewed-by: William Kucharski <william.kuchar...@oracle.com>
---
 mm/readahead.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/mm/readahead.c b/mm/readahead.c
index ae231a5312cb..73cb59ed5cff 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -195,9 +195,12 @@ void page_cache_readahead_unbounded(struct address_space 
*mapping,
 
                if (page && !xa_is_value(page)) {
                        /*
-                        * Page already present?  Kick off the current batch of
-                        * contiguous pages before continuing with the next
-                        * batch.
+                        * Page already present?  Kick off the current batch
+                        * of contiguous pages before continuing with the
+                        * next batch.  This page may be the one we would
+                        * have intended to mark as Readahead, but we don't
+                        * have a stable reference to this page, and it's
+                        * not worth getting one just for that.
                         */
                        read_pages(&rac, &page_pool, true);
                        continue;
-- 
2.25.1


Reply via email to