Lines Matching +full:a +full:- +full:8

1 /* SPDX-License-Identifier: GPL-2.0 */
6 * In extent bkeys, the value is a list of pointers (bch_extent_ptr), optionally
15 * merely adjust ptr->offset to point to the start of the data that is currently
20 * Thus an extent that is not checksummed or compressed will consist only of a
30 * to store the size of the originally allocated space - this is the
33 * pointer, we keep a second smaller offset field - "offset into the original
38 * Each pointer may have its own bch_extent_crc32/64. When doing a replicated
40 * same checksum type and compression format - however, when copygc runs later (or
42 * going to rewrite all the pointers at once - one of the replicas may be in a
44 * in a bucket that has become heavily fragmented, and thus is being rewritten
47 * Thus it will only move a subset of the pointers (or in the case of
48 * tiering/cache promotion perhaps add a single pointer without dropping any
51 * fragmentation!) - which necessitates a different bch_extent_crc format for
57 * Thus, a bch_extent consists of bch_extent_crc32s, bch_extent_crc64s, and
59 * type of a given entry with a scheme similar to utf8 (except we're encoding a
60 * type, not a size), encoding the type in the position of the first set bit:
62 * bch_extent_crc32 - 0b1
63 * bch_extent_ptr - 0b10
64 * bch_extent_crc64 - 0b100
72 * If there are no bch_extent_crcs preceding a bch_extent_ptr, then that pointer
112 } __packed __aligned(8);
138 } __packed __aligned(8);
141 #define CRC64_NONCE_MAX ((1U << 10) - 1)
162 } __packed __aligned(8);
165 #define CRC128_NONCE_MAX ((1U << 13) - 1)
168 * @reservation - pointer hasn't been written to, just reserved
176 offset:44, /* 8 petabytes */
177 dev:8,
178 gen:8;
180 __u64 gen:8,
181 dev:8,
188 } __packed __aligned(8);
193 block:8,
199 block:8,
208 compression:8, /* enum bch_compression_opt */
212 compression:8,
240 } __packed __aligned(8);
252 } __packed __aligned(8);
261 } __packed __aligned(8);
263 /* Maximum size (in u64s) a single pointer could be: */
288 } __packed __aligned(8);