fscache: Convert fscache_set_page_dirty() to fscache_dirty_folio()
[linux-block.git] / fs / ceph / addr.c
index 09fd7a02586c6215f7a3929db696a396c2a630ef..f40c34f4f5267dbca4348b05734884a5477d065e 100644 (file)
@@ -76,18 +76,17 @@ static inline struct ceph_snap_context *page_snap_context(struct page *page)
  * Dirty a page.  Optimistically adjust accounting, on the assumption
  * that we won't race with invalidate.  If we do, readjust.
  */
-static int ceph_set_page_dirty(struct page *page)
+static bool ceph_dirty_folio(struct address_space *mapping, struct folio *folio)
 {
-       struct address_space *mapping = page->mapping;
        struct inode *inode;
        struct ceph_inode_info *ci;
        struct ceph_snap_context *snapc;
 
-       if (PageDirty(page)) {
-               dout("%p set_page_dirty %p idx %lu -- already dirty\n",
-                    mapping->host, page, page->index);
-               BUG_ON(!PagePrivate(page));
-               return 0;
+       if (folio_test_dirty(folio)) {
+               dout("%p dirty_folio %p idx %lu -- already dirty\n",
+                    mapping->host, folio, folio->index);
+               BUG_ON(!folio_get_private(folio));
+               return false;
        }
 
        inode = mapping->host;
@@ -111,22 +110,22 @@ static int ceph_set_page_dirty(struct page *page)
        if (ci->i_wrbuffer_ref == 0)
                ihold(inode);
        ++ci->i_wrbuffer_ref;
-       dout("%p set_page_dirty %p idx %lu head %d/%d -> %d/%d "
+       dout("%p dirty_folio %p idx %lu head %d/%d -> %d/%d "
             "snapc %p seq %lld (%d snaps)\n",
-            mapping->host, page, page->index,
+            mapping->host, folio, folio->index,
             ci->i_wrbuffer_ref-1, ci->i_wrbuffer_ref_head-1,
             ci->i_wrbuffer_ref, ci->i_wrbuffer_ref_head,
             snapc, snapc->seq, snapc->num_snaps);
        spin_unlock(&ci->i_ceph_lock);
 
        /*
-        * Reference snap context in page->private.  Also set
+        * Reference snap context in folio->private.  Also set
         * PagePrivate so that we get invalidate_folio callback.
         */
-       BUG_ON(PagePrivate(page));
-       attach_page_private(page, snapc);
+       BUG_ON(folio_get_private(folio));
+       folio_attach_private(folio, snapc);
 
-       return ceph_fscache_set_page_dirty(page);
+       return ceph_fscache_dirty_folio(mapping, folio);
 }
 
 /*
@@ -1376,7 +1375,7 @@ const struct address_space_operations ceph_aops = {
        .writepages = ceph_writepages_start,
        .write_begin = ceph_write_begin,
        .write_end = ceph_write_end,
-       .set_page_dirty = ceph_set_page_dirty,
+       .dirty_folio = ceph_dirty_folio,
        .invalidate_folio = ceph_invalidate_folio,
        .releasepage = ceph_releasepage,
        .direct_IO = noop_direct_IO,