mirror of
https://github.com/torvalds/linux.git
synced 2024-10-22 21:20:52 +00:00
filemap: fix page_cache_next_miss() when no hole found
page_cache_next_miss() should return value outside of the specified range when no hole is found. However currently it will return the last index *in* the specified range confusing ondemand_readahead() to think there's a hole in the searched range and upsetting readahead logic. Link: https://lkml.kernel.org/r/20240625101909.12234-2-jack@suse.cz Signed-off-by: Jan Kara <jack@suse.cz> Reviewed-by: Josef Bacik <josef@toxicpanda.com> Tested-by: Zhang Peng <zhangpengpeng0808@gmail.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
8051b82a0b
commit
901a269ff3
|
@ -1752,12 +1752,12 @@ pgoff_t page_cache_next_miss(struct address_space *mapping,
|
|||
while (max_scan--) {
|
||||
void *entry = xas_next(&xas);
|
||||
if (!entry || xa_is_value(entry))
|
||||
break;
|
||||
return xas.xa_index;
|
||||
if (xas.xa_index == 0)
|
||||
break;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return xas.xa_index;
|
||||
return index + max_scan;
|
||||
}
|
||||
EXPORT_SYMBOL(page_cache_next_miss);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user