|
@@ -952,6 +952,10 @@ void write_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
|
|
|
trace_f2fs_write_checkpoint(sbi->sb, is_umount, "start block_ops");
|
|
|
|
|
|
mutex_lock(&sbi->cp_mutex);
|
|
|
+
|
|
|
+ if (!sbi->s_dirty)
|
|
|
+ goto out;
|
|
|
+
|
|
|
block_operations(sbi);
|
|
|
|
|
|
trace_f2fs_write_checkpoint(sbi->sb, is_umount, "finish block_ops");
|
|
@@ -976,9 +980,9 @@ void write_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
|
|
|
do_checkpoint(sbi, is_umount);
|
|
|
|
|
|
unblock_operations(sbi);
|
|
|
- mutex_unlock(&sbi->cp_mutex);
|
|
|
-
|
|
|
stat_inc_cp_count(sbi->stat_info);
|
|
|
+out:
|
|
|
+ mutex_unlock(&sbi->cp_mutex);
|
|
|
trace_f2fs_write_checkpoint(sbi->sb, is_umount, "finish checkpoint");
|
|
|
}
|
|
|
|