bcachefs: Kill memset() in bch2_btree_iter_init()
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 17 Nov 2023 03:35:29 +0000 (22:35 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 1 Jan 2024 16:47:37 +0000 (11:47 -0500)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs_format.h
fs/bcachefs/btree_iter.h
fs/bcachefs/btree_types.h

index fe78e87603fcf3bf2cec9114f4ecaf8744cba7a8..60b2264e019e39f5dca11b4f5684f9efc721a1ea 100644 (file)
@@ -307,6 +307,13 @@ struct bkey_i {
        struct bch_val  v;
 };
 
+#define POS_KEY(_pos)                                                  \
+((struct bkey) {                                                       \
+       .u64s           = BKEY_U64s,                                    \
+       .format         = KEY_FORMAT_CURRENT,                           \
+       .p              = _pos,                                         \
+})
+
 #define KEY(_inode, _offset, _size)                                    \
 ((struct bkey) {                                                       \
        .u64s           = BKEY_U64s,                                    \
index 7286f92b1974dd3c58c9b67e8379c87b2c0262cf..064720171551bdacf2916759aaaa3cbc396a7f5b 100644 (file)
@@ -445,14 +445,17 @@ static inline void bch2_trans_iter_init_common(struct btree_trans *trans,
                                          unsigned flags,
                                          unsigned long ip)
 {
-       memset(iter, 0, sizeof(*iter));
-       iter->trans     = trans;
-       iter->btree_id  = btree_id;
-       iter->flags     = flags;
-       iter->snapshot  = pos.snapshot;
-       iter->pos       = pos;
-       iter->k.p       = pos;
-
+       iter->trans             = trans;
+       iter->update_path       = NULL;
+       iter->key_cache_path    = NULL;
+       iter->btree_id          = btree_id;
+       iter->min_depth         = 0;
+       iter->flags             = flags;
+       iter->snapshot          = pos.snapshot;
+       iter->pos               = pos;
+       iter->k                 = POS_KEY(pos);
+       iter->journal_idx       = 0;
+       iter->journal_pos       = POS_MIN;
 #ifdef CONFIG_BCACHEFS_DEBUG
        iter->ip_allocated = ip;
 #endif
index 7f17c23326c7a7503eff51c9f6fc7f61fd54001d..662852b1e12fbad57a66b8331f6e0051339c923c 100644 (file)
@@ -287,8 +287,7 @@ struct btree_iter {
        struct btree_path       *key_cache_path;
 
        enum btree_id           btree_id:8;
-       unsigned                min_depth:3;
-       unsigned                advanced:1;
+       u8                      min_depth;
 
        /* btree_iter_copy starts here: */
        u16                     flags;