Skip to content
/ linux Public
forked from torvalds/linux

Commit

Permalink
fs: Remove aops ->set_page_dirty
Browse files Browse the repository at this point in the history
With all implementations converted to ->dirty_folio, we can stop calling
this fallback method and remove it entirely.

Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
Tested-by: Damien Le Moal <[email protected]>
Acked-by: Damien Le Moal <[email protected]>
Tested-by: Mike Marshall <[email protected]> # orangefs
Tested-by: David Howells <[email protected]> # afs
  • Loading branch information
Matthew Wilcox (Oracle) committed Mar 16, 2022
1 parent 51cdea7 commit 3a3bae5
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 14 deletions.
2 changes: 1 addition & 1 deletion fs/ecryptfs/mmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
Expand Down
3 changes: 1 addition & 2 deletions include/linux/fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 *);

/*
Expand Down
11 changes: 3 additions & 8 deletions mm/page-writeback.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
4 changes: 1 addition & 3 deletions mm/page_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down

0 comments on commit 3a3bae5

Please sign in to comment.