Commit a8958a1a authored by Kent Overstreet's avatar Kent Overstreet

bcachefs: bkey_copy() is no longer a macro

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 103ffe9a
...@@ -92,19 +92,15 @@ enum bkey_lr_packed { ...@@ -92,19 +92,15 @@ enum bkey_lr_packed {
#define bkey_lr_packed(_l, _r) \ #define bkey_lr_packed(_l, _r) \
((_l)->format + ((_r)->format << 1)) ((_l)->format + ((_r)->format << 1))
#define bkey_copy(_dst, _src) \ static inline void bkey_p_copy(struct bkey_packed *dst, const struct bkey_packed *src)
do { \ {
BUILD_BUG_ON(!type_is(_dst, struct bkey_i *) && \ memcpy_u64s_small(dst, src, src->u64s);
!type_is(_dst, struct bkey_packed *)); \ }
BUILD_BUG_ON(!type_is(_src, struct bkey_i *) && \
!type_is(_src, struct bkey_packed *)); \ static inline void bkey_copy(struct bkey_i *dst, const struct bkey_i *src)
EBUG_ON((u64 *) (_dst) > (u64 *) (_src) && \ {
(u64 *) (_dst) < (u64 *) (_src) + \ memcpy_u64s_small(dst, src, src->k.u64s);
((struct bkey *) (_src))->u64s); \ }
\
memcpy_u64s_small((_dst), (_src), \
((struct bkey *) (_src))->u64s); \
} while (0)
struct btree; struct btree;
......
...@@ -106,7 +106,7 @@ bch2_key_sort_fix_overlapping(struct bch_fs *c, struct bset *dst, ...@@ -106,7 +106,7 @@ bch2_key_sort_fix_overlapping(struct bch_fs *c, struct bset *dst,
while ((k = sort_iter_peek(iter))) { while ((k = sort_iter_peek(iter))) {
if (!bkey_deleted(k) && if (!bkey_deleted(k) &&
!should_drop_next_key(iter)) { !should_drop_next_key(iter)) {
bkey_copy(out, k); bkey_p_copy(out, k);
btree_keys_account_key_add(&nr, 0, out); btree_keys_account_key_add(&nr, 0, out);
out = bkey_p_next(out); out = bkey_p_next(out);
} }
...@@ -137,7 +137,7 @@ bch2_sort_repack(struct bset *dst, struct btree *src, ...@@ -137,7 +137,7 @@ bch2_sort_repack(struct bset *dst, struct btree *src,
continue; continue;
if (!transform) if (!transform)
bkey_copy(out, in); bkey_p_copy(out, in);
else if (bch2_bkey_transform(out_f, out, bkey_packed(in) else if (bch2_bkey_transform(out_f, out, bkey_packed(in)
? in_f : &bch2_bkey_format_current, in)) ? in_f : &bch2_bkey_format_current, in))
out->format = KEY_FORMAT_LOCAL_BTREE; out->format = KEY_FORMAT_LOCAL_BTREE;
...@@ -191,7 +191,7 @@ unsigned bch2_sort_keys(struct bkey_packed *dst, ...@@ -191,7 +191,7 @@ unsigned bch2_sort_keys(struct bkey_packed *dst,
memcpy_u64s_small(out, in, bkeyp_key_u64s(f, in)); memcpy_u64s_small(out, in, bkeyp_key_u64s(f, in));
set_bkeyp_val_u64s(f, out, 0); set_bkeyp_val_u64s(f, out, 0);
} else { } else {
bkey_copy(out, in); bkey_p_copy(out, in);
} }
out->needs_whiteout |= needs_whiteout; out->needs_whiteout |= needs_whiteout;
out = bkey_p_next(out); out = bkey_p_next(out);
......
...@@ -184,7 +184,7 @@ static void bch2_sort_whiteouts(struct bch_fs *c, struct btree *b) ...@@ -184,7 +184,7 @@ static void bch2_sort_whiteouts(struct bch_fs *c, struct btree *b)
k = new_whiteouts; k = new_whiteouts;
while (ptrs != ptrs_end) { while (ptrs != ptrs_end) {
bkey_copy(k, *ptrs); bkey_p_copy(k, *ptrs);
k = bkey_p_next(k); k = bkey_p_next(k);
ptrs++; ptrs++;
} }
...@@ -260,7 +260,7 @@ static bool bch2_drop_whiteouts(struct btree *b, enum compact_mode mode) ...@@ -260,7 +260,7 @@ static bool bch2_drop_whiteouts(struct btree *b, enum compact_mode mode)
n = bkey_p_next(k); n = bkey_p_next(k);
if (!bkey_deleted(k)) { if (!bkey_deleted(k)) {
bkey_copy(out, k); bkey_p_copy(out, k);
out = bkey_p_next(out); out = bkey_p_next(out);
} else { } else {
BUG_ON(k->needs_whiteout); BUG_ON(k->needs_whiteout);
......
...@@ -303,7 +303,7 @@ static inline void push_whiteout(struct bch_fs *c, struct btree *b, ...@@ -303,7 +303,7 @@ static inline void push_whiteout(struct bch_fs *c, struct btree *b,
k.needs_whiteout = true; k.needs_whiteout = true;
b->whiteout_u64s += k.u64s; b->whiteout_u64s += k.u64s;
bkey_copy(unwritten_whiteouts_start(c, b), &k); bkey_p_copy(unwritten_whiteouts_start(c, b), &k);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment