Signed-off-by: Matthew Wilcox <willy@infradead.org>
Acked-by: David Sterba <dsterba@suse.com>
                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)
 
 
                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);