bcachefs: Drop some memset() calls
authorKent Overstreet <kent.overstreet@gmail.com>
Sun, 4 Apr 2021 01:09:13 +0000 (21:09 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:59 +0000 (17:08 -0400)
gcc is emitting rep stos here, which is silly (and slow) for an 8 byte
memset.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_iter.h

index 455f2fe4929ca4230fd08cb981d4cc9994df5246..07d9b6d36e51fa5c1011648cfe0eefae8753fd7c 100644 (file)
@@ -174,8 +174,11 @@ static inline void bch2_btree_iter_set_pos(struct btree_iter *iter, struct bpos
        if (!(iter->flags & BTREE_ITER_ALL_SNAPSHOTS))
                new_pos.snapshot = iter->snapshot;
 
-       bkey_init(&iter->k);
-       iter->k.p = iter->pos = new_pos;
+       iter->k.type = KEY_TYPE_deleted;
+       iter->k.p.inode         = iter->pos.inode       = new_pos.inode;
+       iter->k.p.offset        = iter->pos.offset      = new_pos.offset;
+       iter->k.p.snapshot      = iter->pos.snapshot    = new_pos.snapshot;
+       iter->k.size = 0;
 }
 
 /* Sort order for locking btree iterators: */