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

Reply via email to