lock_buffer(bh);
        set_mask_bits(&bh->b_state, clear_bits, 0);
        if (nilfs_folio_buffers_clean(folio))
-               __nilfs_clear_page_dirty(&folio->page);
+               __nilfs_clear_folio_dirty(folio);
 
        bh->b_blocknr = -1;
        folio_clear_uptodate(folio);
                } while (bh = bh->b_this_page, bh != head);
        }
 
-       __nilfs_clear_page_dirty(&folio->page);
+       __nilfs_clear_folio_dirty(folio);
 }
 
 unsigned int nilfs_page_count_clean_buffers(struct page *page,
  * 2) Some B-tree operations like insertion or deletion may dispose buffers
  *    in dirty state, and this needs to cancel the dirty state of their pages.
  */
-int __nilfs_clear_page_dirty(struct page *page)
+void __nilfs_clear_folio_dirty(struct folio *folio)
 {
-       struct address_space *mapping = page->mapping;
+       struct address_space *mapping = folio->mapping;
 
        if (mapping) {
                xa_lock_irq(&mapping->i_pages);
-               if (test_bit(PG_dirty, &page->flags)) {
-                       __xa_clear_mark(&mapping->i_pages, page_index(page),
+               if (folio_test_dirty(folio)) {
+                       __xa_clear_mark(&mapping->i_pages, folio->index,
                                             PAGECACHE_TAG_DIRTY);
                        xa_unlock_irq(&mapping->i_pages);
-                       return clear_page_dirty_for_io(page);
+                       folio_clear_dirty_for_io(folio);
+                       return;
                }
                xa_unlock_irq(&mapping->i_pages);
-               return 0;
+               return;
        }
-       return TestClearPageDirty(page);
+       folio_clear_dirty(folio);
 }
 
 /**
 
 BUFFER_FNS(NILFS_Redirected, nilfs_redirected) /* redirected to a copy */
 
 
-int __nilfs_clear_page_dirty(struct page *);
+void __nilfs_clear_folio_dirty(struct folio *);
 
 struct buffer_head *nilfs_grab_buffer(struct inode *, struct address_space *,
                                      unsigned long, unsigned long);