Commit 187c82cb authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle)
Browse files

fs: Convert trivial uses of __set_page_dirty_nobuffers to filemap_dirty_folio



These filesystems use __set_page_dirty_nobuffers() either directly or
with a very thin wrapper; convert them en masse.

Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Tested-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
Acked-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
Tested-by: Mike Marshall <hubcap@omnibond.com> # orangefs
Tested-by: David Howells <dhowells@redhat.com> # afs
parent 0079c3b1
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -10077,11 +10077,6 @@ int btrfs_prealloc_file_range_trans(struct inode *inode,
					   min_size, actual_len, alloc_hint, trans);
}

static int btrfs_set_page_dirty(struct page *page)
{
	return __set_page_dirty_nobuffers(page);
}

static int btrfs_permission(struct user_namespace *mnt_userns,
			    struct inode *inode, int mask)
{
@@ -10644,7 +10639,7 @@ static const struct address_space_operations btrfs_aops = {
#ifdef CONFIG_MIGRATION
	.migratepage	= btrfs_migratepage,
#endif
	.set_page_dirty	= btrfs_set_page_dirty,
	.dirty_folio	= filemap_dirty_folio,
	.error_remove_page = generic_error_remove_page,
	.swap_activate	= btrfs_swap_activate,
	.swap_deactivate = btrfs_swap_deactivate,
+11 −10
Original line number Diff line number Diff line
@@ -3541,22 +3541,23 @@ const struct iomap_ops ext4_iomap_report_ops = {
};

/*
 * Pages can be marked dirty completely asynchronously from ext4's journalling
 * activity.  By filemap_sync_pte(), try_to_unmap_one(), etc.  We cannot do
 * much here because ->set_page_dirty is called under VFS locks.  The page is
 * not necessarily locked.
 * Folios can be marked dirty completely asynchronously from ext4's
 * journalling activity.  By filemap_sync_pte(), try_to_unmap_one(), etc.
 * We cannot do much here because ->dirty_folio may be called with the
 * page table lock held.  The folio is not necessarily locked.
 *
 * We cannot just dirty the page and leave attached buffers clean, because the
 * We cannot just dirty the folio and leave attached buffers clean, because the
 * buffers' dirty state is "definitive".  We cannot just set the buffers dirty
 * or jbddirty because all the journalling code will explode.
 *
 * So what we do is to mark the page "pending dirty" and next time writepage
 * So what we do is to mark the folio "pending dirty" and next time writepage
 * is called, propagate that into the buffers appropriately.
 */
static int ext4_journalled_set_page_dirty(struct page *page)
static bool ext4_journalled_dirty_folio(struct address_space *mapping,
		struct folio *folio)
{
	SetPageChecked(page);
	return __set_page_dirty_nobuffers(page);
	folio_set_checked(folio);
	return filemap_dirty_folio(mapping, folio);
}

static int ext4_set_page_dirty(struct page *page)
@@ -3598,7 +3599,7 @@ static const struct address_space_operations ext4_journalled_aops = {
	.writepages		= ext4_writepages,
	.write_begin		= ext4_write_begin,
	.write_end		= ext4_journalled_write_end,
	.set_page_dirty		= ext4_journalled_set_page_dirty,
	.dirty_folio		= ext4_journalled_dirty_folio,
	.bmap			= ext4_bmap,
	.invalidate_folio	= ext4_journalled_invalidate_folio,
	.releasepage		= ext4_releasepage,
+1 −1
Original line number Diff line number Diff line
@@ -3162,7 +3162,7 @@ static const struct address_space_operations fuse_file_aops = {
	.writepage	= fuse_writepage,
	.writepages	= fuse_writepages,
	.launder_folio	= fuse_launder_folio,
	.set_page_dirty	= __set_page_dirty_nobuffers,
	.dirty_folio	= filemap_dirty_folio,
	.bmap		= fuse_bmap,
	.direct_IO	= fuse_direct_IO,
	.write_begin	= fuse_write_begin,
+1 −1
Original line number Diff line number Diff line
@@ -780,7 +780,7 @@ static const struct address_space_operations gfs2_aops = {
	.writepages = gfs2_writepages,
	.readpage = gfs2_readpage,
	.readahead = gfs2_readahead,
	.set_page_dirty = __set_page_dirty_nobuffers,
	.dirty_folio = filemap_dirty_folio,
	.releasepage = iomap_releasepage,
	.invalidate_folio = iomap_invalidate_folio,
	.bmap = gfs2_bmap,
+2 −1
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
#include <linux/statfs.h>
#include <linux/slab.h>
#include <linux/seq_file.h>
#include <linux/writeback.h>
#include <linux/mount.h>
#include <linux/namei.h>
#include "hostfs.h"
@@ -504,7 +505,7 @@ static int hostfs_write_end(struct file *file, struct address_space *mapping,
static const struct address_space_operations hostfs_aops = {
	.writepage 	= hostfs_writepage,
	.readpage	= hostfs_readpage,
	.set_page_dirty = __set_page_dirty_nobuffers,
	.dirty_folio	= filemap_dirty_folio,
	.write_begin	= hostfs_write_begin,
	.write_end	= hostfs_write_end,
};
Loading