linux/fs/f2fs
Chao Yu d80afefb17 f2fs: fix to account FS_CP_DATA_IO correctly
f2fs_inode_info.cp_task was introduced for FS_CP_DATA_IO accounting
since commit b0af6d491a ("f2fs: add app/fs io stat").

However, cp_task usage coverage has been increased due to below
commits:
commit 040d2bb318 ("f2fs: fix to avoid deadloop if data_flush is on")
commit 186857c5a1 ("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: 040d2bb318 ("f2fs: fix to avoid deadloop if data_flush is on")
Fixes: 186857c5a1 ("f2fs: fix potential recursive call when enabling data_flush")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-10-04 13:31:44 -07:00
..
acl.c f2fs: port to vfs{g,u}id_t and associated helpers 2022-10-04 13:31:43 -07:00
acl.h vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
checkpoint.c f2fs: fix to account FS_CP_DATA_IO correctly 2022-10-04 13:31:44 -07:00
compress.c f2fs: remove redundant check in f2fs_sanity_check_cluster 2022-10-04 13:31:42 -07:00
data.c f2fs: fix to account FS_CP_DATA_IO correctly 2022-10-04 13:31:44 -07:00
debug.c f2fs: code clean and fix a type error 2022-10-04 13:31:44 -07:00
dir.c f2fs: don't use casefolded comparison for "." and ".." 2022-05-17 11:19:23 -07:00
extent_cache.c f2fs: code clean and fix a type error 2022-10-04 13:31:44 -07:00
f2fs.h f2fs: fix to account FS_CP_DATA_IO correctly 2022-10-04 13:31:44 -07:00
file.c f2fs: code clean and fix a type error 2022-10-04 13:31:44 -07:00
gc.c f2fs: fix to do sanity check on summary info 2022-10-04 13:31:43 -07:00
gc.h f2fs: remove redundant code for gc condition 2022-07-30 20:16:20 -07:00
hash.c f2fs: don't use casefolded comparison for "." and ".." 2022-05-17 11:19:23 -07:00
inline.c f2fs: use memcpy_{to,from}_page() where possible 2022-08-29 21:15:51 -07:00
inode.c f2fs: add static init_idisk_time function to reduce the code 2022-10-04 13:31:42 -07:00
iostat.c f2fs: iostat: support accounting compressed IO 2022-08-29 21:15:51 -07:00
iostat.h f2fs: iostat: support accounting compressed IO 2022-08-29 21:15:51 -07:00
Kconfig f2fs: introduce F2FS_UNFAIR_RWSEM to support unfair rwsem 2022-03-04 09:15:53 -08:00
Makefile f2fs: separate out iostat feature 2021-08-23 10:25:51 -07:00
namei.c f2fs: attach inline_data after setting compression 2022-06-19 15:16:10 -07:00
node.c f2fs: code clean and fix a type error 2022-10-04 13:31:44 -07:00
node.h f2fs: change the current atomic write way 2022-05-12 10:14:03 -07:00
recovery.c f2fs: fix to do sanity check on summary info 2022-10-04 13:31:43 -07:00
segment.c f2fs: fix to account FS_CP_DATA_IO correctly 2022-10-04 13:31:44 -07:00
segment.h f2fs: adjust zone capacity when considering valid block count 2022-07-30 20:16:20 -07:00
shrinker.c f2fs: avoid race condition for shrinker count 2020-12-03 00:59:26 -08:00
super.c f2fs: increase the limit for reserve_root 2022-09-12 23:08:21 -07:00
sysfs.c f2fs: remove gc_urgent_high_limited for cleanup 2022-08-29 21:15:51 -07:00
verity.c f2fs: use memcpy_{to,from}_page() where possible 2022-08-29 21:15:51 -07:00
xattr.c f2fs: move f2fs to use reader-unfair rwsems 2022-01-24 17:40:04 -08:00
xattr.h f2fs: code cleanup by removing ifdef macro surrounding 2020-05-26 18:56:10 -07:00