page cache: Convert hole search to XArray
The page cache offers the ability to search for a miss in the previous or next N locations. Rather than teach the XArray about the page cache's definition of a miss, use xas_prev() and xas_next() to search the page array. This should be more efficient as it does not have to start the lookup from the top for each index. Signed-off-by: Matthew Wilcox <willy@infradead.org>
This commit is contained in:
@@ -336,7 +336,7 @@ static pgoff_t count_history_pages(struct address_space *mapping,
|
||||
pgoff_t head;
|
||||
|
||||
rcu_read_lock();
|
||||
head = page_cache_prev_hole(mapping, offset - 1, max);
|
||||
head = page_cache_prev_miss(mapping, offset - 1, max);
|
||||
rcu_read_unlock();
|
||||
|
||||
return offset - 1 - head;
|
||||
@@ -425,7 +425,7 @@ ondemand_readahead(struct address_space *mapping,
|
||||
pgoff_t start;
|
||||
|
||||
rcu_read_lock();
|
||||
start = page_cache_next_hole(mapping, offset + 1, max_pages);
|
||||
start = page_cache_next_miss(mapping, offset + 1, max_pages);
|
||||
rcu_read_unlock();
|
||||
|
||||
if (!start || start - offset > max_pages)
|
||||
|
Reference in New Issue
Block a user