f2fs: modify for accurate fggc node io stat
modify for accurate fggc node io stat Signed-off-by: Yunlei He <heyunlei@huawei.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
65f1b80b33
commit
f15194fcfa
|
@ -1243,37 +1243,6 @@ iput_out:
|
|||
iput(inode);
|
||||
}
|
||||
|
||||
void move_node_page(struct page *node_page, int gc_type)
|
||||
{
|
||||
if (gc_type == FG_GC) {
|
||||
struct f2fs_sb_info *sbi = F2FS_P_SB(node_page);
|
||||
struct writeback_control wbc = {
|
||||
.sync_mode = WB_SYNC_ALL,
|
||||
.nr_to_write = 1,
|
||||
.for_reclaim = 0,
|
||||
};
|
||||
|
||||
set_page_dirty(node_page);
|
||||
f2fs_wait_on_page_writeback(node_page, NODE, true);
|
||||
|
||||
f2fs_bug_on(sbi, PageWriteback(node_page));
|
||||
if (!clear_page_dirty_for_io(node_page))
|
||||
goto out_page;
|
||||
|
||||
if (NODE_MAPPING(sbi)->a_ops->writepage(node_page, &wbc))
|
||||
unlock_page(node_page);
|
||||
goto release_page;
|
||||
} else {
|
||||
/* set page dirty and write it */
|
||||
if (!PageWriteback(node_page))
|
||||
set_page_dirty(node_page);
|
||||
}
|
||||
out_page:
|
||||
unlock_page(node_page);
|
||||
release_page:
|
||||
f2fs_put_page(node_page, 0);
|
||||
}
|
||||
|
||||
static struct page *last_fsync_dnode(struct f2fs_sb_info *sbi, nid_t ino)
|
||||
{
|
||||
pgoff_t index, end;
|
||||
|
@ -1416,6 +1385,37 @@ redirty_out:
|
|||
return AOP_WRITEPAGE_ACTIVATE;
|
||||
}
|
||||
|
||||
void move_node_page(struct page *node_page, int gc_type)
|
||||
{
|
||||
if (gc_type == FG_GC) {
|
||||
struct writeback_control wbc = {
|
||||
.sync_mode = WB_SYNC_ALL,
|
||||
.nr_to_write = 1,
|
||||
.for_reclaim = 0,
|
||||
};
|
||||
|
||||
set_page_dirty(node_page);
|
||||
f2fs_wait_on_page_writeback(node_page, NODE, true);
|
||||
|
||||
f2fs_bug_on(F2FS_P_SB(node_page), PageWriteback(node_page));
|
||||
if (!clear_page_dirty_for_io(node_page))
|
||||
goto out_page;
|
||||
|
||||
if (__write_node_page(node_page, false, NULL,
|
||||
&wbc, false, FS_GC_NODE_IO))
|
||||
unlock_page(node_page);
|
||||
goto release_page;
|
||||
} else {
|
||||
/* set page dirty and write it */
|
||||
if (!PageWriteback(node_page))
|
||||
set_page_dirty(node_page);
|
||||
}
|
||||
out_page:
|
||||
unlock_page(node_page);
|
||||
release_page:
|
||||
f2fs_put_page(node_page, 0);
|
||||
}
|
||||
|
||||
static int f2fs_write_node_page(struct page *page,
|
||||
struct writeback_control *wbc)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue