f2fs: don't trigger data flush in foreground operation
authorChao Yu <yuchao0@huawei.com>
Thu, 19 Mar 2020 11:57:58 +0000 (19:57 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 31 Mar 2020 03:46:24 +0000 (20:46 -0700)
commit7bcd0cfa735d72037c71979f18a257b0c6a2b87f
treeed313a1908e07492a352980a1f60a27cd6cb3c0a
parent62f63eea291b50a5677ae7503ac128803174698a
f2fs: don't trigger data flush in foreground operation

Data flush can generate heavy IO and cause long latency during
flush, so it's not appropriate to trigger it in foreground
operation.

And also, we may face below potential deadlock during data flush:
- f2fs_write_multi_pages
 - f2fs_write_raw_pages
  - f2fs_write_single_data_page
   - f2fs_balance_fs
    - f2fs_balance_fs_bg
     - f2fs_sync_dirty_inodes
      - filemap_fdatawrite   -- stuck on flush same cluster

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