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