]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mm/readahead: simplify page_cache_ra_unbounded loop counter reset
authorFrederick Mayle <fmayle@google.com>
Tue, 12 May 2026 20:31:36 +0000 (13:31 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 2 Jun 2026 22:22:15 +0000 (15:22 -0700)
Minor cleanup, no behavior change intended.

`read_pages` ensures that `ractl->_nr_pages` is zero before it returns, so
the `ractl->_nr_pages` term in these expressions contributes nothing.
This seems to have been true since the statements were introduced in
commit f615bd5c4725f ("mm/readahead: Handle ractl nr_pages being
modified").

The new expression has an intuitive explanation.  When filesystems perform
readahead, they increment `ractl->_index` by the number of pages
processed, so, after `read_pages` returns, `ractl->_index` points to the
first page after those already processed.  `index` points to the first
page considered in the loop.  So, `ractl->_index - index` is the number of
pages processed by the loop so far.

Link: https://lore.kernel.org/20260512203154.754075-3-fmayle@google.com
Signed-off-by: Frederick Mayle <fmayle@google.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/readahead.c

index 23bec54973084ee3677fc3361fe4fb496c2836a0..42f2f20633b0bf9005265b7d26ba0359ce0ef48c 100644 (file)
@@ -281,7 +281,7 @@ void page_cache_ra_unbounded(struct readahead_control *ractl,
                         */
                        read_pages(ractl);
                        ractl->_index += min_nrpages;
-                       i = ractl->_index + ractl->_nr_pages - index;
+                       i = ractl->_index - index;
                        continue;
                }
 
@@ -297,7 +297,7 @@ void page_cache_ra_unbounded(struct readahead_control *ractl,
                                break;
                        read_pages(ractl);
                        ractl->_index += min_nrpages;
-                       i = ractl->_index + ractl->_nr_pages - index;
+                       i = ractl->_index - index;
                        continue;
                }
                if (i == mark)