]> www.infradead.org Git - users/hch/dma-mapping.git/commitdiff
bcachefs: INODE_STR_HASH() for bch_inode_unpacked
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 18 Oct 2024 02:55:59 +0000 (22:55 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 18 Oct 2024 04:49:48 +0000 (00:49 -0400)
Trivial cleanup - add a normal BITMASK() helper for bch_inode_unpacked.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/inode.c
fs/bcachefs/inode.h
fs/bcachefs/inode_format.h
fs/bcachefs/str_hash.h

index 47544dc91d9e3896025430f7c759480f1ac8756c..3662f648a6c370ed9e24194c1ce8d478c96194c1 100644 (file)
@@ -163,8 +163,8 @@ static noinline int bch2_inode_unpack_v1(struct bkey_s_c_inode inode,
        unsigned fieldnr = 0, field_bits;
        int ret;
 
-#define x(_name, _bits)                                        \
-       if (fieldnr++ == INODE_NR_FIELDS(inode.v)) {                    \
+#define x(_name, _bits)                                                        \
+       if (fieldnr++ == INODEv1_NR_FIELDS(inode.v)) {                  \
                unsigned offset = offsetof(struct bch_inode_unpacked, _name);\
                memset((void *) unpacked + offset, 0,                   \
                       sizeof(*unpacked) - offset);                     \
@@ -293,10 +293,10 @@ static noinline int bch2_inode_unpack_slowpath(struct bkey_s_c k,
                unpacked->bi_flags      = le32_to_cpu(inode.v->bi_flags);
                unpacked->bi_mode       = le16_to_cpu(inode.v->bi_mode);
 
-               if (INODE_NEW_VARINT(inode.v)) {
+               if (INODEv1_NEW_VARINT(inode.v)) {
                        return bch2_inode_unpack_v2(unpacked, inode.v->fields,
                                                    bkey_val_end(inode),
-                                                   INODE_NR_FIELDS(inode.v));
+                                                   INODEv1_NR_FIELDS(inode.v));
                } else {
                        return bch2_inode_unpack_v1(inode, unpacked);
                }
@@ -471,10 +471,10 @@ int bch2_inode_validate(struct bch_fs *c, struct bkey_s_c k,
        struct bkey_s_c_inode inode = bkey_s_c_to_inode(k);
        int ret = 0;
 
-       bkey_fsck_err_on(INODE_STR_HASH(inode.v) >= BCH_STR_HASH_NR,
+       bkey_fsck_err_on(INODEv1_STR_HASH(inode.v) >= BCH_STR_HASH_NR,
                         c, inode_str_hash_invalid,
                         "invalid str hash type (%llu >= %u)",
-                        INODE_STR_HASH(inode.v), BCH_STR_HASH_NR);
+                        INODEv1_STR_HASH(inode.v), BCH_STR_HASH_NR);
 
        ret = __bch2_inode_validate(c, k, flags);
 fsck_err:
@@ -800,10 +800,8 @@ void bch2_inode_init_early(struct bch_fs *c,
 
        memset(inode_u, 0, sizeof(*inode_u));
 
-       /* ick */
-       inode_u->bi_flags |= str_hash << INODE_STR_HASH_OFFSET;
-       get_random_bytes(&inode_u->bi_hash_seed,
-                        sizeof(inode_u->bi_hash_seed));
+       SET_INODE_STR_HASH(inode_u, str_hash);
+       get_random_bytes(&inode_u->bi_hash_seed, sizeof(inode_u->bi_hash_seed));
 }
 
 void bch2_inode_init_late(struct bch_inode_unpacked *inode_u, u64 now,
index c8e98443e2d4b91ef7c7dace273f41e4177b24fb..eab82b5eb8977d8c6e8120b55fce870f8ffec26a 100644 (file)
@@ -92,6 +92,7 @@ struct bch_inode_unpacked {
        BCH_INODE_FIELDS_v3()
 #undef  x
 };
+BITMASK(INODE_STR_HASH,        struct bch_inode_unpacked, bi_flags, 20, 24);
 
 struct bkey_inode_buf {
        struct bkey_i_inode_v3  inode;
index a204e46b6b473991e98e5f38507b8601b1ee0993..7928d0c6954fa79951c1b7266255db4ccbe7047e 100644 (file)
@@ -150,9 +150,9 @@ enum __bch_inode_flags {
 #undef x
 };
 
-LE32_BITMASK(INODE_STR_HASH,   struct bch_inode, bi_flags, 20, 24);
-LE32_BITMASK(INODE_NR_FIELDS,  struct bch_inode, bi_flags, 24, 31);
-LE32_BITMASK(INODE_NEW_VARINT, struct bch_inode, bi_flags, 31, 32);
+LE32_BITMASK(INODEv1_STR_HASH, struct bch_inode, bi_flags, 20, 24);
+LE32_BITMASK(INODEv1_NR_FIELDS,        struct bch_inode, bi_flags, 24, 31);
+LE32_BITMASK(INODEv1_NEW_VARINT,struct bch_inode, bi_flags, 31, 32);
 
 LE64_BITMASK(INODEv2_STR_HASH, struct bch_inode_v2, bi_flags, 20, 24);
 LE64_BITMASK(INODEv2_NR_FIELDS,        struct bch_inode_v2, bi_flags, 24, 31);
index cc2084e9f1cc19ab2b971507701614c3e2c18231..d4b5718860bd6f11bc01cd1198ee9b0741aca024 100644 (file)
@@ -46,8 +46,7 @@ bch2_hash_info_init(struct bch_fs *c, const struct bch_inode_unpacked *bi)
 {
        /* XXX ick */
        struct bch_hash_info info = {
-               .type = (bi->bi_flags >> INODE_STR_HASH_OFFSET) &
-                       ~(~0U << INODE_STR_HASH_BITS),
+               .type = INODE_STR_HASH(bi),
                .siphash_key = { .k0 = bi->bi_hash_seed }
        };