mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02: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
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -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 a new issue