瀏覽代碼

f2fs: fix block_ops trace point

block operations is used to flush all dirty node and dentry blocks in
the page cache and suspend ordinary writing activities, however, there
are some facts such like cp error or mount read-only etc which lead to
block operations can't be invoked. Current trace point print block_ops
start premature even if block_ops doesn't have opportunity to execute.
This patch fix it by move block_ops trace point just before block_ops.

Signed-off-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Wanpeng Li 10 年之前
父節點
當前提交
2bda542d59
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      fs/f2fs/checkpoint.c

+ 3 - 2
fs/f2fs/checkpoint.c

@@ -1047,8 +1047,6 @@ void write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
 	unsigned long long ckpt_ver;
 	unsigned long long ckpt_ver;
 
 
-	trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "start block_ops");
-
 	mutex_lock(&sbi->cp_mutex);
 	mutex_lock(&sbi->cp_mutex);
 
 
 	if (!is_sbi_flag_set(sbi, SBI_IS_DIRTY) &&
 	if (!is_sbi_flag_set(sbi, SBI_IS_DIRTY) &&
@@ -1058,6 +1056,9 @@ void write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
 		goto out;
 		goto out;
 	if (f2fs_readonly(sbi->sb))
 	if (f2fs_readonly(sbi->sb))
 		goto out;
 		goto out;
+
+	trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "start block_ops");
+
 	if (block_operations(sbi))
 	if (block_operations(sbi))
 		goto out;
 		goto out;