summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2016-12-05 11:37:14 -0800
committerJaegeuk Kim <jaegeuk@google.com>2017-09-25 15:37:01 -0700
commitd1c2c35718474b52d19a58acffe7a698d6dc764c (patch)
treebc0a612bb21dcfbd644d629b7e6141a786e83a23
parent036ed1b8ebbbe2db084f83bb8e03d83a0d3d6ee6 (diff)
f2fs: call sync_fs when f2fs is idle
commit f455c8a5f0a24090e99249eb7280012376adec2c upstream. The sync_fs in f2fs_balance_fs_bg must avoid interrupting current user requests. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--fs/f2fs/segment.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 4f557e5e789d..b95f07559d90 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -381,12 +381,15 @@ void f2fs_balance_fs_bg(struct f2fs_sb_info *sbi)
else
build_free_nids(sbi, false);
+ if (!is_idle(sbi))
+ return;
+
/* checkpoint is the only way to shrink partial cached entries */
if (!available_free_memory(sbi, NAT_ENTRIES) ||
!available_free_memory(sbi, INO_ENTRIES) ||
excess_prefree_segs(sbi) ||
excess_dirty_nats(sbi) ||
- (is_idle(sbi) && f2fs_time_over(sbi, CP_TIME))) {
+ f2fs_time_over(sbi, CP_TIME)) {
if (test_opt(sbi, DATA_FLUSH)) {
struct blk_plug plug;