diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index b559b6fc089e8c614e276c3175b184706bdfa7a4..54e41cf7892afb7fdb728be0a49a955446cb5edc 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3590,7 +3590,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;
 		}