mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
bcachefs: bch2_alloc_v4_to_text()
Specialize the .to_text() for alloc_v4, to avoid the temporary on the stack for conversion from old versions. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
0c34e7ff69
commit
eabef52ff8
|
|
@ -337,11 +337,10 @@ void bch2_alloc_v4_swab(struct bkey_s k)
|
|||
a->stripe_sectors = swab32(a->stripe_sectors);
|
||||
}
|
||||
|
||||
void bch2_alloc_to_text(struct printbuf *out, struct bch_fs *c, struct bkey_s_c k)
|
||||
static inline void __bch2_alloc_v4_to_text(struct printbuf *out, struct bch_fs *c,
|
||||
unsigned dev, const struct bch_alloc_v4 *a)
|
||||
{
|
||||
struct bch_alloc_v4 _a;
|
||||
const struct bch_alloc_v4 *a = bch2_alloc_to_v4(k, &_a);
|
||||
struct bch_dev *ca = c ? bch2_dev_bucket_tryget_noerror(c, k.k->p) : NULL;
|
||||
struct bch_dev *ca = c ? bch2_dev_tryget_noerror(c, dev) : NULL;
|
||||
|
||||
prt_newline(out);
|
||||
printbuf_indent_add(out, 2);
|
||||
|
|
@ -369,6 +368,19 @@ void bch2_alloc_to_text(struct printbuf *out, struct bch_fs *c, struct bkey_s_c
|
|||
bch2_dev_put(ca);
|
||||
}
|
||||
|
||||
void bch2_alloc_to_text(struct printbuf *out, struct bch_fs *c, struct bkey_s_c k)
|
||||
{
|
||||
struct bch_alloc_v4 _a;
|
||||
const struct bch_alloc_v4 *a = bch2_alloc_to_v4(k, &_a);
|
||||
|
||||
__bch2_alloc_v4_to_text(out, c, k.k->p.inode, a);
|
||||
}
|
||||
|
||||
void bch2_alloc_v4_to_text(struct printbuf *out, struct bch_fs *c, struct bkey_s_c k)
|
||||
{
|
||||
__bch2_alloc_v4_to_text(out, c, k.k->p.inode, bkey_s_c_to_alloc_v4(k).v);
|
||||
}
|
||||
|
||||
void __bch2_alloc_to_v4(struct bkey_s_c k, struct bch_alloc_v4 *out)
|
||||
{
|
||||
if (k.k->type == KEY_TYPE_alloc_v4) {
|
||||
|
|
|
|||
|
|
@ -253,6 +253,7 @@ int bch2_alloc_v4_validate(struct bch_fs *, struct bkey_s_c,
|
|||
struct bkey_validate_context);
|
||||
void bch2_alloc_v4_swab(struct bkey_s);
|
||||
void bch2_alloc_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
|
||||
void bch2_alloc_v4_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
|
||||
|
||||
#define bch2_bkey_ops_alloc ((struct bkey_ops) { \
|
||||
.key_validate = bch2_alloc_v1_validate, \
|
||||
|
|
@ -277,7 +278,7 @@ void bch2_alloc_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
|
|||
|
||||
#define bch2_bkey_ops_alloc_v4 ((struct bkey_ops) { \
|
||||
.key_validate = bch2_alloc_v4_validate, \
|
||||
.val_to_text = bch2_alloc_to_text, \
|
||||
.val_to_text = bch2_alloc_v4_to_text, \
|
||||
.swab = bch2_alloc_v4_swab, \
|
||||
.trigger = bch2_trigger_alloc, \
|
||||
.min_val_size = 48, \
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user