On 2017/10/30 14:18, Yunlei He wrote: > modify for accurate fggc node io stat > > Signed-off-by: Yunlei He <heyun...@huawei.com>
Reviewed-by: Chao Yu <yuch...@huawei.com> Thanks, > --- > fs/f2fs/node.c | 62 > +++++++++++++++++++++++++++++----------------------------- > 1 file changed, 31 insertions(+), 31 deletions(-) > > diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c > index f44d837..1552c6a 100644 > --- a/fs/f2fs/node.c > +++ b/fs/f2fs/node.c > @@ -1242,37 +1242,6 @@ static void flush_inline_data(struct f2fs_sb_info > *sbi, nid_t ino) > 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; > @@ -1415,6 +1384,37 @@ static int __write_node_page(struct page *page, bool > atomic, bool *submitted, > 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) > { > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel