fs: Remove aops ->set_page_dirty
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 9 Feb 2022 20:22:15 +0000 (20:22 +0000)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 16 Mar 2022 17:37:05 +0000 (13:37 -0400)
With all implementations converted to ->dirty_folio, we can stop calling
this fallback method and remove it entirely.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Acked-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Tested-by: Mike Marshall <hubcap@omnibond.com> # orangefs
Tested-by: David Howells <dhowells@redhat.com> # afs
fs/ecryptfs/mmap.c
include/linux/fs.h
mm/page-writeback.c
mm/page_io.c

index 9aabcb2..9ad61b5 100644 (file)
@@ -540,7 +540,7 @@ const struct address_space_operations ecryptfs_aops = {
         * XXX: This is pretty broken for multiple reasons: ecryptfs does not
         * actually use buffer_heads, and ecryptfs will crash without
         * CONFIG_BLOCK.  But it matches the behavior before the default for
-        * address_space_operations without the ->set_page_dirty method was
+        * address_space_operations without the ->dirty_folio method was
         * cleaned up, so this is the best we can do without maintainer
         * feedback.
         */
index c3d5db8..b472d78 100644 (file)
@@ -367,8 +367,7 @@ struct address_space_operations {
        /* Write back some dirty pages from this mapping. */
        int (*writepages)(struct address_space *, struct writeback_control *);
 
-       /* Set a page dirty.  Return true if this dirtied it */
-       int (*set_page_dirty)(struct page *page);
+       /* Mark a folio dirty.  Return true if this dirtied it */
        bool (*dirty_folio)(struct address_space *, struct folio *);
 
        /*
index 4557a8d..0997738 100644 (file)
@@ -2641,15 +2641,10 @@ bool folio_mark_dirty(struct folio *folio)
                 */
                if (folio_test_reclaim(folio))
                        folio_clear_reclaim(folio);
-               if (mapping->a_ops->dirty_folio)
-                       return mapping->a_ops->dirty_folio(mapping, folio);
-               return mapping->a_ops->set_page_dirty(&folio->page);
+               return mapping->a_ops->dirty_folio(mapping, folio);
        }
-       if (!folio_test_dirty(folio)) {
-               if (!folio_test_set_dirty(folio))
-                       return true;
-       }
-       return false;
+
+       return noop_dirty_folio(mapping, folio);
 }
 EXPORT_SYMBOL(folio_mark_dirty);
 
index e333397..6bde053 100644 (file)
@@ -449,9 +449,7 @@ bool swap_dirty_folio(struct address_space *mapping, struct folio *folio)
                aops = mapping->a_ops;
 
                VM_BUG_ON_FOLIO(!folio_test_swapcache(folio), folio);
-               if (aops->dirty_folio)
-                       return aops->dirty_folio(mapping, folio);
-               return aops->set_page_dirty(&folio->page);
+               return aops->dirty_folio(mapping, folio);
        } else {
                return noop_dirty_folio(mapping, folio);
        }