btrfs: Convert page cache to XArray
Signed-off-by: Matthew Wilcox <willy@infradead.org> Acked-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
7f4446eefe
commit
0a943c65e7
|
@ -437,9 +437,7 @@ static noinline int add_ra_bio_pages(struct inode *inode,
|
|||
if (pg_index > end_index)
|
||||
break;
|
||||
|
||||
rcu_read_lock();
|
||||
page = radix_tree_lookup(&mapping->i_pages, pg_index);
|
||||
rcu_read_unlock();
|
||||
page = xa_load(&mapping->i_pages, pg_index);
|
||||
if (page && !xa_is_value(page)) {
|
||||
misses++;
|
||||
if (misses > 4)
|
||||
|
|
|
@ -5153,11 +5153,9 @@ void clear_extent_buffer_dirty(struct extent_buffer *eb)
|
|||
|
||||
clear_page_dirty_for_io(page);
|
||||
xa_lock_irq(&page->mapping->i_pages);
|
||||
if (!PageDirty(page)) {
|
||||
radix_tree_tag_clear(&page->mapping->i_pages,
|
||||
page_index(page),
|
||||
PAGECACHE_TAG_DIRTY);
|
||||
}
|
||||
if (!PageDirty(page))
|
||||
__xa_clear_mark(&page->mapping->i_pages,
|
||||
page_index(page), PAGECACHE_TAG_DIRTY);
|
||||
xa_unlock_irq(&page->mapping->i_pages);
|
||||
ClearPageError(page);
|
||||
unlock_page(page);
|
||||
|
|
Loading…
Reference in New Issue