diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 49acce633478f118576f8b971555738fa3273845..69917f33b3120d0e029e9cb40d3ca0ebc981f412 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3833,7 +3833,7 @@ static int reserve_compress_blocks(struct dnode_of_data *dn, pgoff_t count,
 		to_reserved = cluster_size - compr_blocks - reserved;
 
 		/* for the case all blocks in cluster were reserved */
-		if (to_reserved == 1) {
+		if (reserved && to_reserved == 1) {
 			dn->ofs_in_node += cluster_size;
 			goto next;
 		}