summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChao Yu <yuchao0@huawei.com>2019-04-26 11:57:54 +0200
committerJaegeuk Kim <jaegeuk@kernel.org>2019-05-09 06:23:13 +0200
commit896285ad02ea1e8a7cedbceb5e5656335b7ae563 (patch)
tree5758d2c5e4e19d09e4e6749057802e51e2f01686
parentf2fs: remove redundant check in f2fs_file_write_iter() (diff)
downloadlinux-896285ad02ea1e8a7cedbceb5e5656335b7ae563.tar.xz
linux-896285ad02ea1e8a7cedbceb5e5656335b7ae563.zip
f2fs: fix to handle error in f2fs_disable_checkpoint()
In f2fs_disable_checkpoint(), it needs to detect and propagate error number returned from f2fs_write_checkpoint(). Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--fs/f2fs/super.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 4f8e9ab48b26..fe075aa12893 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -1504,9 +1504,12 @@ static int f2fs_disable_checkpoint(struct f2fs_sb_info *sbi)
mutex_lock(&sbi->gc_mutex);
cpc.reason = CP_PAUSE;
set_sbi_flag(sbi, SBI_CP_DISABLED);
- f2fs_write_checkpoint(sbi, &cpc);
+ err = f2fs_write_checkpoint(sbi, &cpc);
+ if (err)
+ goto out_unlock;
sbi->unusable_block_count = 0;
+out_unlock:
mutex_unlock(&sbi->gc_mutex);
restore_flag:
sbi->sb->s_flags = s_flags; /* Restore MS_RDONLY status */