aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/f2fs/super.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 12a4f3f44a2f..eca9aea9834e 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -800,13 +800,17 @@ int f2fs_sync_fs(struct super_block *sb, int sync)
800 800
801static int f2fs_freeze(struct super_block *sb) 801static int f2fs_freeze(struct super_block *sb)
802{ 802{
803 int err;
804
805 if (f2fs_readonly(sb)) 803 if (f2fs_readonly(sb))
806 return 0; 804 return 0;
807 805
808 err = f2fs_sync_fs(sb, 1); 806 /* IO error happened before */
809 return err; 807 if (unlikely(f2fs_cp_error(F2FS_SB(sb))))
808 return -EIO;
809
810 /* must be clean, since sync_filesystem() was already called */
811 if (is_sbi_flag_set(F2FS_SB(sb), SBI_IS_DIRTY))
812 return -EINVAL;
813 return 0;
810} 814}
811 815
812static int f2fs_unfreeze(struct super_block *sb) 816static int f2fs_unfreeze(struct super_block *sb)
@@ -2152,3 +2156,4 @@ module_exit(exit_f2fs_fs)
2152MODULE_AUTHOR("Samsung Electronics's Praesto Team"); 2156MODULE_AUTHOR("Samsung Electronics's Praesto Team");
2153MODULE_DESCRIPTION("Flash Friendly File System"); 2157MODULE_DESCRIPTION("Flash Friendly File System");
2154MODULE_LICENSE("GPL"); 2158MODULE_LICENSE("GPL");
2159