• Chao Yu's avatar
    f2fs: fix to account FS_CP_DATA_IO correctly · d80afefb
    Chao Yu authored
    f2fs_inode_info.cp_task was introduced for FS_CP_DATA_IO accounting
    since commit b0af6d49 ("f2fs: add app/fs io stat").
    
    However, cp_task usage coverage has been increased due to below
    commits:
    commit 040d2bb3 ("f2fs: fix to avoid deadloop if data_flush is on")
    commit 186857c5 ("f2fs: fix potential recursive call when enabling data_flush")
    
    So that, if data_flush mountoption is on, when data flush was
    triggered from background, the IO from data flush will be accounted
    as checkpoint IO type incorrectly.
    
    In order to fix this issue, this patch splits cp_task into two:
    a) cp_task: used for IO accounting
    b) wb_task: used to avoid deadlock
    
    Fixes: 040d2bb3 ("f2fs: fix to avoid deadloop if data_flush is on")
    Fixes: 186857c5 ("f2fs: fix potential recursive call when enabling data_flush")
    Signed-off-by: default avatarChao Yu <chao@kernel.org>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    d80afefb
data.c 99.9 KB