diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 6eec3b2d606d4163459b0ebeebc75d9da30db4f3..9a40761445d3cc0bd3166e236922e9ab929266aa 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -849,8 +849,10 @@ static int move_data_block(struct inode *inode, block_t bidx,
 
 	mpage = f2fs_grab_cache_page(META_MAPPING(fio.sbi),
 					fio.old_blkaddr, false);
-	if (!mpage)
+	if (!mpage) {
+		err = -ENOMEM;
 		goto up_out;
+	}
 
 	fio.encrypted_page = mpage;