mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
nilfs2: remove nilfs_writepage
Since nilfs2 has a ->writepages operation already, ->writepage is only called by the migration code. If we add a ->migrate_folio operation, it won't even be used for that and so it can be deleted. [konishi.ryusuke@gmail.com: fixed panic by using buffer_migrate_folio_norefs] Link: https://lkml.kernel.org/r/20241002150036.1339475-2-willy@infradead.org Link: https://lkml.kernel.org/r/20241024092602.13395-10-konishi.ryusuke@gmail.com Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
a6cb5b1e9c
commit
310293201e
@ -170,37 +170,6 @@ static int nilfs_writepages(struct address_space *mapping,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nilfs_writepage(struct page *page, struct writeback_control *wbc)
|
|
||||||
{
|
|
||||||
struct folio *folio = page_folio(page);
|
|
||||||
struct inode *inode = folio->mapping->host;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
if (sb_rdonly(inode->i_sb)) {
|
|
||||||
/*
|
|
||||||
* It means that filesystem was remounted in read-only
|
|
||||||
* mode because of error or metadata corruption. But we
|
|
||||||
* have dirty pages that try to be flushed in background.
|
|
||||||
* So, here we simply discard this dirty page.
|
|
||||||
*/
|
|
||||||
nilfs_clear_folio_dirty(folio);
|
|
||||||
folio_unlock(folio);
|
|
||||||
return -EROFS;
|
|
||||||
}
|
|
||||||
|
|
||||||
folio_redirty_for_writepage(wbc, folio);
|
|
||||||
folio_unlock(folio);
|
|
||||||
|
|
||||||
if (wbc->sync_mode == WB_SYNC_ALL) {
|
|
||||||
err = nilfs_construct_segment(inode->i_sb);
|
|
||||||
if (unlikely(err))
|
|
||||||
return err;
|
|
||||||
} else if (wbc->for_reclaim)
|
|
||||||
nilfs_flush_segment(inode->i_sb, inode->i_ino);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool nilfs_dirty_folio(struct address_space *mapping,
|
static bool nilfs_dirty_folio(struct address_space *mapping,
|
||||||
struct folio *folio)
|
struct folio *folio)
|
||||||
{
|
{
|
||||||
@ -295,7 +264,6 @@ nilfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
|
|||||||
}
|
}
|
||||||
|
|
||||||
const struct address_space_operations nilfs_aops = {
|
const struct address_space_operations nilfs_aops = {
|
||||||
.writepage = nilfs_writepage,
|
|
||||||
.read_folio = nilfs_read_folio,
|
.read_folio = nilfs_read_folio,
|
||||||
.writepages = nilfs_writepages,
|
.writepages = nilfs_writepages,
|
||||||
.dirty_folio = nilfs_dirty_folio,
|
.dirty_folio = nilfs_dirty_folio,
|
||||||
@ -304,6 +272,7 @@ const struct address_space_operations nilfs_aops = {
|
|||||||
.write_end = nilfs_write_end,
|
.write_end = nilfs_write_end,
|
||||||
.invalidate_folio = block_invalidate_folio,
|
.invalidate_folio = block_invalidate_folio,
|
||||||
.direct_IO = nilfs_direct_IO,
|
.direct_IO = nilfs_direct_IO,
|
||||||
|
.migrate_folio = buffer_migrate_folio_norefs,
|
||||||
.is_partially_uptodate = block_is_partially_uptodate,
|
.is_partially_uptodate = block_is_partially_uptodate,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user