diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 5dd9cd9547910f479f6b98a04c22df23076a3790..588b4fb922bf6580c7f14824445aa9295f1fc123 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3731,7 +3731,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;
 		}