f2fs: report error of do_checkpoint

do_checkpoint and write_checkpoint can fail due to reasons like triggering
in a readonly fs or encountering IO error of storage device.

So it's better to report such error info to user, let user be aware of
failure of doing checkpoint.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 888ce47..780db8b 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1618,6 +1618,7 @@
 	struct inode *inode = file_inode(filp);
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	struct cp_control cpc;
+	int err;
 
 	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
@@ -1628,10 +1629,10 @@
 	cpc.reason = __get_cp_reason(sbi);
 
 	mutex_lock(&sbi->gc_mutex);
-	write_checkpoint(sbi, &cpc);
+	err = write_checkpoint(sbi, &cpc);
 	mutex_unlock(&sbi->gc_mutex);
 
-	return 0;
+	return err;
 }
 
 static int f2fs_defragment_range(struct f2fs_sb_info *sbi,