From: Kent Overstreet <kent.overstreet@gmail.com>
Date: Thu, 5 Mar 2020 22:06:15 +0000 (-0500)
Subject: bcachefs: Fix off by one error in bch2_extent_crc_append()
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=e65fcb4362d5480b6a62be32014c8643f70a8bfc;p=linux.git

bcachefs: Fix off by one error in bch2_extent_crc_append()

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
---

diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c
index cff4955d203b5..1ac4f0522043e 100644
--- a/fs/bcachefs/extents.c
+++ b/fs/bcachefs/extents.c
@@ -344,7 +344,7 @@ enum merge_result bch2_extent_merge(struct bch_fs *c,
 			    crc_r.uncompressed_size > c->sb.encoded_extent_max)
 				return BCH_MERGE_NOMERGE;
 
-			if (crc_l.uncompressed_size + crc_r.uncompressed_size - 1 >
+			if (crc_l.uncompressed_size + crc_r.uncompressed_size >
 			    bch2_crc_field_size_max[extent_entry_type(en_l)])
 				return BCH_MERGE_NOMERGE;
 
@@ -562,15 +562,15 @@ void bch2_extent_crc_append(struct bkey_i *k,
 	enum bch_extent_entry_type type;
 
 	if (bch_crc_bytes[new.csum_type]	<= 4 &&
-	    new.uncompressed_size - 1		<= CRC32_SIZE_MAX &&
+	    new.uncompressed_size		<= CRC32_SIZE_MAX &&
 	    new.nonce				<= CRC32_NONCE_MAX)
 		type = BCH_EXTENT_ENTRY_crc32;
 	else if (bch_crc_bytes[new.csum_type]	<= 10 &&
-		   new.uncompressed_size - 1	<= CRC64_SIZE_MAX &&
+		   new.uncompressed_size	<= CRC64_SIZE_MAX &&
 		   new.nonce			<= CRC64_NONCE_MAX)
 		type = BCH_EXTENT_ENTRY_crc64;
 	else if (bch_crc_bytes[new.csum_type]	<= 16 &&
-		   new.uncompressed_size - 1	<= CRC128_SIZE_MAX &&
+		   new.uncompressed_size	<= CRC128_SIZE_MAX &&
 		   new.nonce			<= CRC128_NONCE_MAX)
 		type = BCH_EXTENT_ENTRY_crc128;
 	else