diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 321d8ffbab6e4bd6cd202d5d34a8ad87b7ac3137..adc7d64a6f47de703bcfcb744b5d4355d93e6f0a 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3792,7 +3792,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;
 		}