f2fs: fix to be aware discard/preflush/dio command in is_idle()
authorChao Yu <yuchao0@huawei.com>
Sun, 11 Nov 2018 16:55:44 +0000 (00:55 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 2 Jan 2019 23:44:47 +0000 (15:44 -0800)
This patch adds missing in-flight discard/preflush/dio command count
check in is_idle().

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/f2fs.h

index fe289761039de0191a397f96603a8f511660dd54..df48c1ce149a1a50820b8e4a559a8877bdcd3322 100644 (file)
@@ -2159,7 +2159,11 @@ static inline bool is_idle(struct f2fs_sb_info *sbi, int type)
 {
        if (get_pages(sbi, F2FS_RD_DATA) || get_pages(sbi, F2FS_RD_NODE) ||
                get_pages(sbi, F2FS_RD_META) || get_pages(sbi, F2FS_WB_DATA) ||
-               get_pages(sbi, F2FS_WB_CP_DATA))
+               get_pages(sbi, F2FS_WB_CP_DATA) ||
+               get_pages(sbi, F2FS_DIO_READ) ||
+               get_pages(sbi, F2FS_DIO_WRITE) ||
+               atomic_read(&SM_I(sbi)->dcc_info->issing_discard) ||
+               atomic_read(&SM_I(sbi)->fcc_info->issing_flush))
                return false;
        return f2fs_time_over(sbi, type);
 }