void nilfs_btnode_delete(struct buffer_head *bh)
 {
        struct address_space *mapping;
-       struct page *page = bh->b_page;
-       pgoff_t index = page_index(page);
+       struct folio *folio = bh->b_folio;
+       pgoff_t index = folio->index;
        int still_dirty;
 
-       get_page(page);
-       lock_page(page);
-       wait_on_page_writeback(page);
+       folio_get(folio);
+       folio_lock(folio);
+       folio_wait_writeback(folio);
 
        nilfs_forget_buffer(bh);
-       still_dirty = PageDirty(page);
-       mapping = page->mapping;
-       unlock_page(page);
-       put_page(page);
+       still_dirty = folio_test_dirty(folio);
+       mapping = folio->mapping;
+       folio_unlock(folio);
+       folio_put(folio);
 
        if (!still_dirty && mapping)
                invalidate_inode_pages2_range(mapping, index, index);