Skip to content

Commit 45dd05b

Browse files
author
Kent Overstreet
committed
bcachefs: BKEY_PADDED_ONSTACK()
Rust bindgen doesn't do anonymous structs very nicely: BKEY_PADDED() only needs the anonymous struct when it's used on the stack, to guarantee layout, not when it's embedded in another struct. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
1 parent 2f52866 commit 45dd05b

File tree

4 files changed

+6
-3
lines changed

4 files changed

+6
-3
lines changed

fs/bcachefs/bcachefs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,4 +1123,7 @@ static inline bool bch2_dev_exists2(const struct bch_fs *c, unsigned dev)
11231123
return dev < c->sb.nr_devices && c->devs[dev];
11241124
}
11251125

1126+
#define BKEY_PADDED_ONSTACK(key, pad) \
1127+
struct { struct bkey_i key; __u64 key ## _pad[pad]; }
1128+
11261129
#endif /* _BCACHEFS_H */

fs/bcachefs/bcachefs_format.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ static inline void bkey_init(struct bkey *k)
322322
#define bkey_bytes(_k) ((_k)->u64s * sizeof(__u64))
323323

324324
#define __BKEY_PADDED(key, pad) \
325-
struct { struct bkey_i key; __u64 key ## _pad[pad]; }
325+
struct bkey_i key; __u64 key ## _pad[pad]
326326

327327
/*
328328
* - DELETED keys are used internally to mark keys that should be ignored but

fs/bcachefs/btree_io.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1847,7 +1847,7 @@ static void btree_write_submit(struct work_struct *work)
18471847
{
18481848
struct btree_write_bio *wbio = container_of(work, struct btree_write_bio, work);
18491849
struct bch_extent_ptr *ptr;
1850-
__BKEY_PADDED(k, BKEY_BTREE_PTR_VAL_U64s_MAX) tmp;
1850+
BKEY_PADDED_ONSTACK(k, BKEY_BTREE_PTR_VAL_U64s_MAX) tmp;
18511851

18521852
bkey_copy(&tmp.k, &wbio->key);
18531853

fs/bcachefs/btree_update_interior.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ static struct btree *__bch2_btree_node_alloc(struct btree_trans *trans,
242242
struct bch_fs *c = trans->c;
243243
struct write_point *wp;
244244
struct btree *b;
245-
__BKEY_PADDED(k, BKEY_BTREE_PTR_VAL_U64s_MAX) tmp;
245+
BKEY_PADDED_ONSTACK(k, BKEY_BTREE_PTR_VAL_U64s_MAX) tmp;
246246
struct open_buckets ob = { .nr = 0 };
247247
struct bch_devs_list devs_have = (struct bch_devs_list) { 0 };
248248
unsigned nr_reserve;

0 commit comments

Comments
 (0)