]> git.ipfire.org Git - thirdparty/linux.git/commit
Revert "readahead: properly shorten readahead when falling back to do_page_cache_ra()"
authorJan Kara <jack@suse.cz>
Tue, 26 Nov 2024 14:52:08 +0000 (15:52 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 6 Dec 2024 03:54:44 +0000 (19:54 -0800)
commita220d6b95b1ae12c7626283d7609f0a1438e6437
tree94f656397c6b8e6da4cd9c57add04d6ca837a037
parent4a475c0a7eeb3368eca40fe7cb02d157eeddc77a
Revert "readahead: properly shorten readahead when falling back to do_page_cache_ra()"

This reverts commit 7c877586da3178974a8a94577b6045a48377ff25.

Anders and Philippe have reported that recent kernels occasionally hang
when used with NFS in readahead code.  The problem has been bisected to
7c877586da3 ("readahead: properly shorten readahead when falling back to
do_page_cache_ra()").  The cause of the problem is that ra->size can be
shrunk by read_pages() call and subsequently we end up calling
do_page_cache_ra() with negative (read huge positive) number of pages.
Let's revert 7c877586da3 for now until we can find a proper way how the
logic in read_pages() and page_cache_ra_order() can coexist.  This can
lead to reduced readahead throughput due to readahead window confusion but
that's better than outright hangs.

Link: https://lkml.kernel.org/r/20241126145208.985-1-jack@suse.cz
Fixes: 7c877586da31 ("readahead: properly shorten readahead when falling back to do_page_cache_ra()")
Reported-by: Anders Blomdell <anders.blomdell@gmail.com>
Reported-by: Philippe Troin <phil@fifi.org>
Signed-off-by: Jan Kara <jack@suse.cz>
Tested-by: Philippe Troin <phil@fifi.org>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/readahead.c