Commit a1019576 authored by Kent Overstreet's avatar Kent Overstreet

bcachefs: More style fixes

Fixes for various checkpatch errors.
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent d4bce636
...@@ -87,34 +87,34 @@ int bch2_alloc_v4_invalid(const struct bch_fs *, struct bkey_s_c, int, struct pr ...@@ -87,34 +87,34 @@ int bch2_alloc_v4_invalid(const struct bch_fs *, struct bkey_s_c, int, struct pr
void bch2_alloc_v4_swab(struct bkey_s); 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_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
#define bch2_bkey_ops_alloc (struct bkey_ops) { \ #define bch2_bkey_ops_alloc ((struct bkey_ops) { \
.key_invalid = bch2_alloc_v1_invalid, \ .key_invalid = bch2_alloc_v1_invalid, \
.val_to_text = bch2_alloc_to_text, \ .val_to_text = bch2_alloc_to_text, \
.trans_trigger = bch2_trans_mark_alloc, \ .trans_trigger = bch2_trans_mark_alloc, \
.atomic_trigger = bch2_mark_alloc, \ .atomic_trigger = bch2_mark_alloc, \
} })
#define bch2_bkey_ops_alloc_v2 (struct bkey_ops) { \ #define bch2_bkey_ops_alloc_v2 ((struct bkey_ops) { \
.key_invalid = bch2_alloc_v2_invalid, \ .key_invalid = bch2_alloc_v2_invalid, \
.val_to_text = bch2_alloc_to_text, \ .val_to_text = bch2_alloc_to_text, \
.trans_trigger = bch2_trans_mark_alloc, \ .trans_trigger = bch2_trans_mark_alloc, \
.atomic_trigger = bch2_mark_alloc, \ .atomic_trigger = bch2_mark_alloc, \
} })
#define bch2_bkey_ops_alloc_v3 (struct bkey_ops) { \ #define bch2_bkey_ops_alloc_v3 ((struct bkey_ops) { \
.key_invalid = bch2_alloc_v3_invalid, \ .key_invalid = bch2_alloc_v3_invalid, \
.val_to_text = bch2_alloc_to_text, \ .val_to_text = bch2_alloc_to_text, \
.trans_trigger = bch2_trans_mark_alloc, \ .trans_trigger = bch2_trans_mark_alloc, \
.atomic_trigger = bch2_mark_alloc, \ .atomic_trigger = bch2_mark_alloc, \
} })
#define bch2_bkey_ops_alloc_v4 (struct bkey_ops) { \ #define bch2_bkey_ops_alloc_v4 ((struct bkey_ops) { \
.key_invalid = bch2_alloc_v4_invalid, \ .key_invalid = bch2_alloc_v4_invalid, \
.val_to_text = bch2_alloc_to_text, \ .val_to_text = bch2_alloc_to_text, \
.swab = bch2_alloc_v4_swab, \ .swab = bch2_alloc_v4_swab, \
.trans_trigger = bch2_trans_mark_alloc, \ .trans_trigger = bch2_trans_mark_alloc, \
.atomic_trigger = bch2_mark_alloc, \ .atomic_trigger = bch2_mark_alloc, \
} })
static inline bool bkey_is_alloc(const struct bkey *k) static inline bool bkey_is_alloc(const struct bkey *k)
{ {
......
...@@ -282,7 +282,7 @@ do { \ ...@@ -282,7 +282,7 @@ do { \
"When reading btree nodes, read all replicas and " \ "When reading btree nodes, read all replicas and " \
"compare them") "compare them")
/* Parameters that should only be compiled in in debug mode: */ /* Parameters that should only be compiled in debug mode: */
#define BCH_DEBUG_PARAMS_DEBUG() \ #define BCH_DEBUG_PARAMS_DEBUG() \
BCH_DEBUG_PARAM(expensive_debug_checks, \ BCH_DEBUG_PARAM(expensive_debug_checks, \
"Enables various runtime debugging checks that " \ "Enables various runtime debugging checks that " \
......
...@@ -1840,6 +1840,7 @@ enum bch_compression_opts { ...@@ -1840,6 +1840,7 @@ enum bch_compression_opts {
static inline __le64 __bch2_sb_magic(struct bch_sb *sb) static inline __le64 __bch2_sb_magic(struct bch_sb *sb)
{ {
__le64 ret; __le64 ret;
memcpy(&ret, &sb->uuid, sizeof(ret)); memcpy(&ret, &sb->uuid, sizeof(ret));
return ret; return ret;
} }
......
...@@ -17,9 +17,6 @@ ...@@ -17,9 +17,6 @@
const struct bkey_format bch2_bkey_format_current = BKEY_FORMAT_CURRENT; const struct bkey_format bch2_bkey_format_current = BKEY_FORMAT_CURRENT;
struct bkey __bch2_bkey_unpack_key(const struct bkey_format *,
const struct bkey_packed *);
void bch2_bkey_packed_to_binary_text(struct printbuf *out, void bch2_bkey_packed_to_binary_text(struct printbuf *out,
const struct bkey_format *f, const struct bkey_format *f,
const struct bkey_packed *k) const struct bkey_packed *k)
......
...@@ -28,13 +28,13 @@ static int deleted_key_invalid(const struct bch_fs *c, struct bkey_s_c k, ...@@ -28,13 +28,13 @@ static int deleted_key_invalid(const struct bch_fs *c, struct bkey_s_c k,
return 0; return 0;
} }
#define bch2_bkey_ops_deleted (struct bkey_ops) { \ #define bch2_bkey_ops_deleted ((struct bkey_ops) { \
.key_invalid = deleted_key_invalid, \ .key_invalid = deleted_key_invalid, \
} })
#define bch2_bkey_ops_whiteout (struct bkey_ops) { \ #define bch2_bkey_ops_whiteout ((struct bkey_ops) { \
.key_invalid = deleted_key_invalid, \ .key_invalid = deleted_key_invalid, \
} })
static int empty_val_key_invalid(const struct bch_fs *c, struct bkey_s_c k, static int empty_val_key_invalid(const struct bch_fs *c, struct bkey_s_c k,
int rw, struct printbuf *err) int rw, struct printbuf *err)
...@@ -48,9 +48,9 @@ static int empty_val_key_invalid(const struct bch_fs *c, struct bkey_s_c k, ...@@ -48,9 +48,9 @@ static int empty_val_key_invalid(const struct bch_fs *c, struct bkey_s_c k,
return 0; return 0;
} }
#define bch2_bkey_ops_error (struct bkey_ops) { \ #define bch2_bkey_ops_error ((struct bkey_ops) { \
.key_invalid = empty_val_key_invalid, \ .key_invalid = empty_val_key_invalid, \
} })
static int key_type_cookie_invalid(const struct bch_fs *c, struct bkey_s_c k, static int key_type_cookie_invalid(const struct bch_fs *c, struct bkey_s_c k,
int rw, struct printbuf *err) int rw, struct printbuf *err)
...@@ -64,13 +64,13 @@ static int key_type_cookie_invalid(const struct bch_fs *c, struct bkey_s_c k, ...@@ -64,13 +64,13 @@ static int key_type_cookie_invalid(const struct bch_fs *c, struct bkey_s_c k,
return 0; return 0;
} }
#define bch2_bkey_ops_cookie (struct bkey_ops) { \ #define bch2_bkey_ops_cookie ((struct bkey_ops) { \
.key_invalid = key_type_cookie_invalid, \ .key_invalid = key_type_cookie_invalid, \
} })
#define bch2_bkey_ops_hash_whiteout (struct bkey_ops) { \ #define bch2_bkey_ops_hash_whiteout ((struct bkey_ops) {\
.key_invalid = empty_val_key_invalid, \ .key_invalid = empty_val_key_invalid, \
} })
static int key_type_inline_data_invalid(const struct bch_fs *c, struct bkey_s_c k, static int key_type_inline_data_invalid(const struct bch_fs *c, struct bkey_s_c k,
int rw, struct printbuf *err) int rw, struct printbuf *err)
...@@ -88,10 +88,10 @@ static void key_type_inline_data_to_text(struct printbuf *out, struct bch_fs *c, ...@@ -88,10 +88,10 @@ static void key_type_inline_data_to_text(struct printbuf *out, struct bch_fs *c,
datalen, min(datalen, 32U), d.v->data); datalen, min(datalen, 32U), d.v->data);
} }
#define bch2_bkey_ops_inline_data (struct bkey_ops) { \ #define bch2_bkey_ops_inline_data ((struct bkey_ops) { \
.key_invalid = key_type_inline_data_invalid, \ .key_invalid = key_type_inline_data_invalid, \
.val_to_text = key_type_inline_data_to_text, \ .val_to_text = key_type_inline_data_to_text, \
} })
static int key_type_set_invalid(const struct bch_fs *c, struct bkey_s_c k, static int key_type_set_invalid(const struct bch_fs *c, struct bkey_s_c k,
int rw, struct printbuf *err) int rw, struct printbuf *err)
...@@ -111,10 +111,10 @@ static bool key_type_set_merge(struct bch_fs *c, struct bkey_s l, struct bkey_s_ ...@@ -111,10 +111,10 @@ static bool key_type_set_merge(struct bch_fs *c, struct bkey_s l, struct bkey_s_
return true; return true;
} }
#define bch2_bkey_ops_set (struct bkey_ops) { \ #define bch2_bkey_ops_set ((struct bkey_ops) { \
.key_invalid = key_type_set_invalid, \ .key_invalid = key_type_set_invalid, \
.key_merge = key_type_set_merge, \ .key_merge = key_type_set_merge, \
} })
const struct bkey_ops bch2_bkey_ops[] = { const struct bkey_ops bch2_bkey_ops[] = {
#define x(name, nr) [KEY_TYPE_##name] = bch2_bkey_ops_##name, #define x(name, nr) [KEY_TYPE_##name] = bch2_bkey_ops_##name,
...@@ -439,6 +439,7 @@ void __bch2_bkey_compat(unsigned level, enum btree_id btree_id, ...@@ -439,6 +439,7 @@ void __bch2_bkey_compat(unsigned level, enum btree_id btree_id,
btree_id == BTREE_ID_inodes) { btree_id == BTREE_ID_inodes) {
if (!bkey_packed(k)) { if (!bkey_packed(k)) {
struct bkey_i *u = packed_to_bkey(k); struct bkey_i *u = packed_to_bkey(k);
swap(u->k.p.inode, u->k.p.offset); swap(u->k.p.inode, u->k.p.offset);
} else if (f->bits_per_field[BKEY_FIELD_INODE] && } else if (f->bits_per_field[BKEY_FIELD_INODE] &&
f->bits_per_field[BKEY_FIELD_OFFSET]) { f->bits_per_field[BKEY_FIELD_OFFSET]) {
......
...@@ -18,7 +18,7 @@ extern const char * const bch2_bkey_types[]; ...@@ -18,7 +18,7 @@ extern const char * const bch2_bkey_types[];
* *
* When invalid, error string is returned via @err. @rw indicates whether key is * When invalid, error string is returned via @err. @rw indicates whether key is
* being read or written; more aggressive checks can be enabled when rw == WRITE. * being read or written; more aggressive checks can be enabled when rw == WRITE.
*/ */
struct bkey_ops { struct bkey_ops {
int (*key_invalid)(const struct bch_fs *c, struct bkey_s_c k, int (*key_invalid)(const struct bch_fs *c, struct bkey_s_c k,
int rw, struct printbuf *err); int rw, struct printbuf *err);
......
...@@ -112,7 +112,9 @@ static int btree_node_data_alloc(struct bch_fs *c, struct btree *b, gfp_t gfp) ...@@ -112,7 +112,9 @@ static int btree_node_data_alloc(struct bch_fs *c, struct btree *b, gfp_t gfp)
static struct btree *__btree_node_mem_alloc(struct bch_fs *c, gfp_t gfp) static struct btree *__btree_node_mem_alloc(struct bch_fs *c, gfp_t gfp)
{ {
struct btree *b = kzalloc(sizeof(struct btree), gfp); struct btree *b;
b = kzalloc(sizeof(struct btree), gfp);
if (!b) if (!b)
return NULL; return NULL;
...@@ -128,7 +130,9 @@ static struct btree *__btree_node_mem_alloc(struct bch_fs *c, gfp_t gfp) ...@@ -128,7 +130,9 @@ static struct btree *__btree_node_mem_alloc(struct bch_fs *c, gfp_t gfp)
struct btree *__bch2_btree_node_mem_alloc(struct bch_fs *c) struct btree *__bch2_btree_node_mem_alloc(struct bch_fs *c)
{ {
struct btree_cache *bc = &c->btree_cache; struct btree_cache *bc = &c->btree_cache;
struct btree *b = __btree_node_mem_alloc(c, GFP_KERNEL); struct btree *b;
b = __btree_node_mem_alloc(c, GFP_KERNEL);
if (!b) if (!b)
return NULL; return NULL;
...@@ -147,6 +151,7 @@ struct btree *__bch2_btree_node_mem_alloc(struct bch_fs *c) ...@@ -147,6 +151,7 @@ struct btree *__bch2_btree_node_mem_alloc(struct bch_fs *c)
void bch2_btree_node_hash_remove(struct btree_cache *bc, struct btree *b) void bch2_btree_node_hash_remove(struct btree_cache *bc, struct btree *b)
{ {
int ret = rhashtable_remove_fast(&bc->table, &b->hash, bch_btree_cache_params); int ret = rhashtable_remove_fast(&bc->table, &b->hash, bch_btree_cache_params);
BUG_ON(ret); BUG_ON(ret);
/* Cause future lookups for this node to fail: */ /* Cause future lookups for this node to fail: */
......
...@@ -199,7 +199,7 @@ static int set_node_min(struct bch_fs *c, struct btree *b, struct bpos new_min) ...@@ -199,7 +199,7 @@ static int set_node_min(struct bch_fs *c, struct btree *b, struct bpos new_min)
struct bkey_i_btree_ptr_v2 *new; struct bkey_i_btree_ptr_v2 *new;
int ret; int ret;
new = kmalloc(BKEY_BTREE_PTR_U64s_MAX * sizeof(u64), GFP_KERNEL); new = kmalloc_array(BKEY_BTREE_PTR_U64s_MAX, sizeof(u64), GFP_KERNEL);
if (!new) if (!new)
return -ENOMEM; return -ENOMEM;
...@@ -228,7 +228,7 @@ static int set_node_max(struct bch_fs *c, struct btree *b, struct bpos new_max) ...@@ -228,7 +228,7 @@ static int set_node_max(struct bch_fs *c, struct btree *b, struct bpos new_max)
if (ret) if (ret)
return ret; return ret;
new = kmalloc(BKEY_BTREE_PTR_U64s_MAX * sizeof(u64), GFP_KERNEL); new = kmalloc_array(BKEY_BTREE_PTR_U64s_MAX, sizeof(u64), GFP_KERNEL);
if (!new) if (!new)
return -ENOMEM; return -ENOMEM;
......
...@@ -1224,6 +1224,7 @@ static void btree_node_read_endio(struct bio *bio) ...@@ -1224,6 +1224,7 @@ static void btree_node_read_endio(struct bio *bio)
if (rb->have_ioref) { if (rb->have_ioref) {
struct bch_dev *ca = bch_dev_bkey_exists(c, rb->pick.ptr.dev); struct bch_dev *ca = bch_dev_bkey_exists(c, rb->pick.ptr.dev);
bch2_latency_acct(ca, rb->start_time, READ); bch2_latency_acct(ca, rb->start_time, READ);
} }
...@@ -1411,6 +1412,7 @@ static void btree_node_read_all_replicas_endio(struct bio *bio) ...@@ -1411,6 +1412,7 @@ static void btree_node_read_all_replicas_endio(struct bio *bio)
if (rb->have_ioref) { if (rb->have_ioref) {
struct bch_dev *ca = bch_dev_bkey_exists(c, rb->pick.ptr.dev); struct bch_dev *ca = bch_dev_bkey_exists(c, rb->pick.ptr.dev);
bch2_latency_acct(ca, rb->start_time, READ); bch2_latency_acct(ca, rb->start_time, READ);
} }
......
...@@ -200,6 +200,7 @@ static void bch2_btree_path_verify_level(struct btree_trans *trans, ...@@ -200,6 +200,7 @@ static void bch2_btree_path_verify_level(struct btree_trans *trans,
if (p) { if (p) {
struct bkey uk = bkey_unpack_key(l->b, p); struct bkey uk = bkey_unpack_key(l->b, p);
bch2_bkey_to_text(&buf2, &uk); bch2_bkey_to_text(&buf2, &uk);
} else { } else {
prt_printf(&buf2, "(none)"); prt_printf(&buf2, "(none)");
...@@ -207,6 +208,7 @@ static void bch2_btree_path_verify_level(struct btree_trans *trans, ...@@ -207,6 +208,7 @@ static void bch2_btree_path_verify_level(struct btree_trans *trans,
if (k) { if (k) {
struct bkey uk = bkey_unpack_key(l->b, k); struct bkey uk = bkey_unpack_key(l->b, k);
bch2_bkey_to_text(&buf3, &uk); bch2_bkey_to_text(&buf3, &uk);
} else { } else {
prt_printf(&buf3, "(none)"); prt_printf(&buf3, "(none)");
......
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _BCACHEFS_BTREE_KEY_CACHE_H #ifndef _BCACHEFS_BTREE_KEY_CACHE_H
#define _BCACHEFS_BTREE_KEY_CACHE_H #define _BCACHEFS_BTREE_KEY_CACHE_H
......
...@@ -78,15 +78,15 @@ static inline enum bch_csum_type bch2_csum_opt_to_type(enum bch_csum_opts type, ...@@ -78,15 +78,15 @@ static inline enum bch_csum_type bch2_csum_opt_to_type(enum bch_csum_opts type,
{ {
switch (type) { switch (type) {
case BCH_CSUM_OPT_none: case BCH_CSUM_OPT_none:
return BCH_CSUM_none; return BCH_CSUM_none;
case BCH_CSUM_OPT_crc32c: case BCH_CSUM_OPT_crc32c:
return data ? BCH_CSUM_crc32c : BCH_CSUM_crc32c_nonzero; return data ? BCH_CSUM_crc32c : BCH_CSUM_crc32c_nonzero;
case BCH_CSUM_OPT_crc64: case BCH_CSUM_OPT_crc64:
return data ? BCH_CSUM_crc64 : BCH_CSUM_crc64_nonzero; return data ? BCH_CSUM_crc64 : BCH_CSUM_crc64_nonzero;
case BCH_CSUM_OPT_xxhash: case BCH_CSUM_OPT_xxhash:
return BCH_CSUM_xxhash; return BCH_CSUM_xxhash;
default: default:
BUG(); BUG();
} }
} }
......
...@@ -9,10 +9,10 @@ extern const struct bch_hash_desc bch2_dirent_hash_desc; ...@@ -9,10 +9,10 @@ extern const struct bch_hash_desc bch2_dirent_hash_desc;
int bch2_dirent_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *); int bch2_dirent_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *);
void bch2_dirent_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); void bch2_dirent_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
#define bch2_bkey_ops_dirent (struct bkey_ops) { \ #define bch2_bkey_ops_dirent ((struct bkey_ops) { \
.key_invalid = bch2_dirent_invalid, \ .key_invalid = bch2_dirent_invalid, \
.val_to_text = bch2_dirent_to_text, \ .val_to_text = bch2_dirent_to_text, \
} })
struct qstr; struct qstr;
struct file; struct file;
......
...@@ -12,13 +12,13 @@ int bch2_stripe_invalid(const struct bch_fs *, struct bkey_s_c, ...@@ -12,13 +12,13 @@ int bch2_stripe_invalid(const struct bch_fs *, struct bkey_s_c,
void bch2_stripe_to_text(struct printbuf *, struct bch_fs *, void bch2_stripe_to_text(struct printbuf *, struct bch_fs *,
struct bkey_s_c); struct bkey_s_c);
#define bch2_bkey_ops_stripe (struct bkey_ops) { \ #define bch2_bkey_ops_stripe ((struct bkey_ops) { \
.key_invalid = bch2_stripe_invalid, \ .key_invalid = bch2_stripe_invalid, \
.val_to_text = bch2_stripe_to_text, \ .val_to_text = bch2_stripe_to_text, \
.swab = bch2_ptr_swab, \ .swab = bch2_ptr_swab, \
.trans_trigger = bch2_trans_mark_stripe, \ .trans_trigger = bch2_trans_mark_stripe, \
.atomic_trigger = bch2_mark_stripe, \ .atomic_trigger = bch2_mark_stripe, \
} })
static inline unsigned stripe_csums_per_device(const struct bch_stripe *s) static inline unsigned stripe_csums_per_device(const struct bch_stripe *s)
{ {
......
...@@ -23,6 +23,7 @@ static unsigned bch2_errcode_parents[] = { ...@@ -23,6 +23,7 @@ static unsigned bch2_errcode_parents[] = {
const char *bch2_err_str(int err) const char *bch2_err_str(int err)
{ {
const char *errstr; const char *errstr;
err = abs(err); err = abs(err);
BUG_ON(err >= BCH_ERR_MAX); BUG_ON(err >= BCH_ERR_MAX);
......
...@@ -198,6 +198,7 @@ static inline struct bkey_ptrs_c bch2_bkey_ptrs_c(struct bkey_s_c k) ...@@ -198,6 +198,7 @@ static inline struct bkey_ptrs_c bch2_bkey_ptrs_c(struct bkey_s_c k)
switch (k.k->type) { switch (k.k->type) {
case KEY_TYPE_btree_ptr: { case KEY_TYPE_btree_ptr: {
struct bkey_s_c_btree_ptr e = bkey_s_c_to_btree_ptr(k); struct bkey_s_c_btree_ptr e = bkey_s_c_to_btree_ptr(k);
return (struct bkey_ptrs_c) { return (struct bkey_ptrs_c) {
to_entry(&e.v->start[0]), to_entry(&e.v->start[0]),
to_entry(extent_entry_last(e)) to_entry(extent_entry_last(e))
...@@ -205,6 +206,7 @@ static inline struct bkey_ptrs_c bch2_bkey_ptrs_c(struct bkey_s_c k) ...@@ -205,6 +206,7 @@ static inline struct bkey_ptrs_c bch2_bkey_ptrs_c(struct bkey_s_c k)
} }
case KEY_TYPE_extent: { case KEY_TYPE_extent: {
struct bkey_s_c_extent e = bkey_s_c_to_extent(k); struct bkey_s_c_extent e = bkey_s_c_to_extent(k);
return (struct bkey_ptrs_c) { return (struct bkey_ptrs_c) {
e.v->start, e.v->start,
extent_entry_last(e) extent_entry_last(e)
...@@ -212,6 +214,7 @@ static inline struct bkey_ptrs_c bch2_bkey_ptrs_c(struct bkey_s_c k) ...@@ -212,6 +214,7 @@ static inline struct bkey_ptrs_c bch2_bkey_ptrs_c(struct bkey_s_c k)
} }
case KEY_TYPE_stripe: { case KEY_TYPE_stripe: {
struct bkey_s_c_stripe s = bkey_s_c_to_stripe(k); struct bkey_s_c_stripe s = bkey_s_c_to_stripe(k);
return (struct bkey_ptrs_c) { return (struct bkey_ptrs_c) {
to_entry(&s.v->ptrs[0]), to_entry(&s.v->ptrs[0]),
to_entry(&s.v->ptrs[s.v->nr_blocks]), to_entry(&s.v->ptrs[s.v->nr_blocks]),
...@@ -227,6 +230,7 @@ static inline struct bkey_ptrs_c bch2_bkey_ptrs_c(struct bkey_s_c k) ...@@ -227,6 +230,7 @@ static inline struct bkey_ptrs_c bch2_bkey_ptrs_c(struct bkey_s_c k)
} }
case KEY_TYPE_btree_ptr_v2: { case KEY_TYPE_btree_ptr_v2: {
struct bkey_s_c_btree_ptr_v2 e = bkey_s_c_to_btree_ptr_v2(k); struct bkey_s_c_btree_ptr_v2 e = bkey_s_c_to_btree_ptr_v2(k);
return (struct bkey_ptrs_c) { return (struct bkey_ptrs_c) {
to_entry(&e.v->start[0]), to_entry(&e.v->start[0]),
to_entry(extent_entry_last(e)) to_entry(extent_entry_last(e))
...@@ -342,7 +346,7 @@ out: \ ...@@ -342,7 +346,7 @@ out: \
#define extent_for_each_entry_from(_e, _entry, _start) \ #define extent_for_each_entry_from(_e, _entry, _start) \
__bkey_extent_entry_for_each_from(_start, \ __bkey_extent_entry_for_each_from(_start, \
extent_entry_last(_e),_entry) extent_entry_last(_e), _entry)
#define extent_for_each_entry(_e, _entry) \ #define extent_for_each_entry(_e, _entry) \
extent_for_each_entry_from(_e, _entry, (_e).v->start) extent_for_each_entry_from(_e, _entry, (_e).v->start)
...@@ -376,28 +380,28 @@ void bch2_btree_ptr_v2_to_text(struct printbuf *, struct bch_fs *, struct bkey_s ...@@ -376,28 +380,28 @@ void bch2_btree_ptr_v2_to_text(struct printbuf *, struct bch_fs *, struct bkey_s
void bch2_btree_ptr_v2_compat(enum btree_id, unsigned, unsigned, void bch2_btree_ptr_v2_compat(enum btree_id, unsigned, unsigned,
int, struct bkey_s); int, struct bkey_s);
#define bch2_bkey_ops_btree_ptr (struct bkey_ops) { \ #define bch2_bkey_ops_btree_ptr ((struct bkey_ops) { \
.key_invalid = bch2_btree_ptr_invalid, \ .key_invalid = bch2_btree_ptr_invalid, \
.val_to_text = bch2_btree_ptr_to_text, \ .val_to_text = bch2_btree_ptr_to_text, \
.swab = bch2_ptr_swab, \ .swab = bch2_ptr_swab, \
.trans_trigger = bch2_trans_mark_extent, \ .trans_trigger = bch2_trans_mark_extent, \
.atomic_trigger = bch2_mark_extent, \ .atomic_trigger = bch2_mark_extent, \
} })
#define bch2_bkey_ops_btree_ptr_v2 (struct bkey_ops) { \ #define bch2_bkey_ops_btree_ptr_v2 ((struct bkey_ops) { \
.key_invalid = bch2_btree_ptr_v2_invalid, \ .key_invalid = bch2_btree_ptr_v2_invalid, \
.val_to_text = bch2_btree_ptr_v2_to_text, \ .val_to_text = bch2_btree_ptr_v2_to_text, \
.swab = bch2_ptr_swab, \ .swab = bch2_ptr_swab, \
.compat = bch2_btree_ptr_v2_compat, \ .compat = bch2_btree_ptr_v2_compat, \
.trans_trigger = bch2_trans_mark_extent, \ .trans_trigger = bch2_trans_mark_extent, \
.atomic_trigger = bch2_mark_extent, \ .atomic_trigger = bch2_mark_extent, \
} })
/* KEY_TYPE_extent: */ /* KEY_TYPE_extent: */
bool bch2_extent_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c); bool bch2_extent_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c);
#define bch2_bkey_ops_extent (struct bkey_ops) { \ #define bch2_bkey_ops_extent ((struct bkey_ops) { \
.key_invalid = bch2_bkey_ptrs_invalid, \ .key_invalid = bch2_bkey_ptrs_invalid, \
.val_to_text = bch2_bkey_ptrs_to_text, \ .val_to_text = bch2_bkey_ptrs_to_text, \
.swab = bch2_ptr_swab, \ .swab = bch2_ptr_swab, \
...@@ -405,7 +409,7 @@ bool bch2_extent_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c); ...@@ -405,7 +409,7 @@ bool bch2_extent_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c);
.key_merge = bch2_extent_merge, \ .key_merge = bch2_extent_merge, \
.trans_trigger = bch2_trans_mark_extent, \ .trans_trigger = bch2_trans_mark_extent, \
.atomic_trigger = bch2_mark_extent, \ .atomic_trigger = bch2_mark_extent, \
} })
/* KEY_TYPE_reservation: */ /* KEY_TYPE_reservation: */
...@@ -414,13 +418,13 @@ int bch2_reservation_invalid(const struct bch_fs *, struct bkey_s_c, ...@@ -414,13 +418,13 @@ int bch2_reservation_invalid(const struct bch_fs *, struct bkey_s_c,
void bch2_reservation_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); void bch2_reservation_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
bool bch2_reservation_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c); bool bch2_reservation_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c);
#define bch2_bkey_ops_reservation (struct bkey_ops) { \ #define bch2_bkey_ops_reservation ((struct bkey_ops) { \
.key_invalid = bch2_reservation_invalid, \ .key_invalid = bch2_reservation_invalid, \
.val_to_text = bch2_reservation_to_text, \ .val_to_text = bch2_reservation_to_text, \
.key_merge = bch2_reservation_merge, \ .key_merge = bch2_reservation_merge, \
.trans_trigger = bch2_trans_mark_reservation, \ .trans_trigger = bch2_trans_mark_reservation, \
.atomic_trigger = bch2_mark_reservation, \ .atomic_trigger = bch2_mark_reservation, \
} })
/* Extent checksum entries: */ /* Extent checksum entries: */
......
...@@ -65,7 +65,7 @@ do { \ ...@@ -65,7 +65,7 @@ do { \
(((p) - (fifo)->data))) (((p) - (fifo)->data)))
#define fifo_entry_idx(fifo, p) (((p) - &fifo_peek_front(fifo)) & (fifo)->mask) #define fifo_entry_idx(fifo, p) (((p) - &fifo_peek_front(fifo)) & (fifo)->mask)
#define fifo_idx_entry(fifo, i) (fifo)->data[((fifo)->front + (i)) & (fifo)->mask] #define fifo_idx_entry(fifo, i) ((fifo)->data[((fifo)->front + (i)) & (fifo)->mask])
#define fifo_push_back_ref(f) \ #define fifo_push_back_ref(f) \
(fifo_full((f)) ? NULL : &(f)->data[(f)->back++ & (f)->mask]) (fifo_full((f)) ? NULL : &(f)->data[(f)->back++ & (f)->mask])
......
...@@ -848,8 +848,7 @@ static int hash_check_key(struct btree_trans *trans, ...@@ -848,8 +848,7 @@ static int hash_check_key(struct btree_trans *trans,
printbuf_exit(&buf); printbuf_exit(&buf);
return ret; return ret;
bad_hash: bad_hash:
if (fsck_err(c, "hash table key at wrong offset: btree %s inode %llu offset %llu, " if (fsck_err(c, "hash table key at wrong offset: btree %s inode %llu offset %llu, hashed to %llu\n%s",
"hashed to %llu\n%s",
bch2_btree_ids[desc.btree_id], hash_k.k->p.inode, hash_k.k->p.offset, hash, bch2_btree_ids[desc.btree_id], hash_k.k->p.inode, hash_k.k->p.offset, hash,
(printbuf_reset(&buf), (printbuf_reset(&buf),
bch2_bkey_val_to_text(&buf, c, hash_k), buf.buf))) { bch2_bkey_val_to_text(&buf, c, hash_k), buf.buf))) {
......
...@@ -11,19 +11,19 @@ int bch2_inode_invalid(const struct bch_fs *, struct bkey_s_c, int, struct print ...@@ -11,19 +11,19 @@ int bch2_inode_invalid(const struct bch_fs *, struct bkey_s_c, int, struct print
int bch2_inode_v2_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *); int bch2_inode_v2_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *);
void bch2_inode_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); void bch2_inode_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
#define bch2_bkey_ops_inode (struct bkey_ops) { \ #define bch2_bkey_ops_inode ((struct bkey_ops) { \
.key_invalid = bch2_inode_invalid, \ .key_invalid = bch2_inode_invalid, \
.val_to_text = bch2_inode_to_text, \ .val_to_text = bch2_inode_to_text, \
.trans_trigger = bch2_trans_mark_inode, \ .trans_trigger = bch2_trans_mark_inode, \
.atomic_trigger = bch2_mark_inode, \ .atomic_trigger = bch2_mark_inode, \
} })
#define bch2_bkey_ops_inode_v2 (struct bkey_ops) { \ #define bch2_bkey_ops_inode_v2 ((struct bkey_ops) { \
.key_invalid = bch2_inode_v2_invalid, \ .key_invalid = bch2_inode_v2_invalid, \
.val_to_text = bch2_inode_to_text, \ .val_to_text = bch2_inode_to_text, \
.trans_trigger = bch2_trans_mark_inode, \ .trans_trigger = bch2_trans_mark_inode, \
.atomic_trigger = bch2_mark_inode, \ .atomic_trigger = bch2_mark_inode, \
} })
static inline bool bkey_is_inode(const struct bkey *k) static inline bool bkey_is_inode(const struct bkey *k)
{ {
...@@ -35,10 +35,10 @@ int bch2_inode_generation_invalid(const struct bch_fs *, struct bkey_s_c, ...@@ -35,10 +35,10 @@ int bch2_inode_generation_invalid(const struct bch_fs *, struct bkey_s_c,
int, struct printbuf *); int, struct printbuf *);
void bch2_inode_generation_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); void bch2_inode_generation_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
#define bch2_bkey_ops_inode_generation (struct bkey_ops) { \ #define bch2_bkey_ops_inode_generation ((struct bkey_ops) { \
.key_invalid = bch2_inode_generation_invalid, \ .key_invalid = bch2_inode_generation_invalid, \
.val_to_text = bch2_inode_generation_to_text, \ .val_to_text = bch2_inode_generation_to_text, \
} })
#if 0 #if 0
typedef struct { typedef struct {
......
...@@ -29,8 +29,8 @@ ...@@ -29,8 +29,8 @@
* *
* Synchronous updates are specified by passing a closure (@flush_cl) to * Synchronous updates are specified by passing a closure (@flush_cl) to
* bch2_btree_insert() or bch_btree_insert_node(), which then pass that parameter * bch2_btree_insert() or bch_btree_insert_node(), which then pass that parameter
* down to the journalling code. That closure will will wait on the journal * down to the journalling code. That closure will wait on the journal write to
* write to complete (via closure_wait()). * complete (via closure_wait()).
* *
* If the index update wasn't synchronous, the journal entry will be * If the index update wasn't synchronous, the journal entry will be
* written out after 10 ms have elapsed, by default (the delay_ms field * written out after 10 ms have elapsed, by default (the delay_ms field
......
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
int bch2_lru_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *); int bch2_lru_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *);
void bch2_lru_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); void bch2_lru_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
#define bch2_bkey_ops_lru (struct bkey_ops) { \ #define bch2_bkey_ops_lru ((struct bkey_ops) { \
.key_invalid = bch2_lru_invalid, \ .key_invalid = bch2_lru_invalid, \
.val_to_text = bch2_lru_to_text, \ .val_to_text = bch2_lru_to_text, \
} })
int bch2_lru_delete(struct btree_trans *, u64, u64, u64, struct bkey_s_c); int bch2_lru_delete(struct btree_trans *, u64, u64, u64, struct bkey_s_c);
int bch2_lru_set(struct btree_trans *, u64, u64, u64 *); int bch2_lru_set(struct btree_trans *, u64, u64, u64 *);
......
...@@ -10,10 +10,10 @@ extern const struct bch_sb_field_ops bch_sb_field_ops_quota; ...@@ -10,10 +10,10 @@ extern const struct bch_sb_field_ops bch_sb_field_ops_quota;
int bch2_quota_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *); int bch2_quota_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *);
void bch2_quota_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); void bch2_quota_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
#define bch2_bkey_ops_quota (struct bkey_ops) { \ #define bch2_bkey_ops_quota ((struct bkey_ops) { \
.key_invalid = bch2_quota_invalid, \ .key_invalid = bch2_quota_invalid, \
.val_to_text = bch2_quota_to_text, \ .val_to_text = bch2_quota_to_text, \
} })
static inline struct bch_qid bch_qid(struct bch_inode_unpacked *u) static inline struct bch_qid bch_qid(struct bch_inode_unpacked *u)
{ {
......
...@@ -1509,8 +1509,7 @@ int bch2_fs_initialize(struct bch_fs *c) ...@@ -1509,8 +1509,7 @@ int bch2_fs_initialize(struct bch_fs *c)
goto err; goto err;
bch_verbose(c, "reading snapshots done"); bch_verbose(c, "reading snapshots done");
bch2_inode_init(c, &root_inode, 0, 0, bch2_inode_init(c, &root_inode, 0, 0, S_IFDIR|0755, 0, NULL);
S_IFDIR|S_IRWXU|S_IRUGO|S_IXUGO, 0, NULL);
root_inode.bi_inum = BCACHEFS_ROOT_INO; root_inode.bi_inum = BCACHEFS_ROOT_INO;
root_inode.bi_subvol = BCACHEFS_ROOT_SUBVOL; root_inode.bi_subvol = BCACHEFS_ROOT_SUBVOL;
bch2_inode_pack(c, &packed_inode, &root_inode); bch2_inode_pack(c, &packed_inode, &root_inode);
......
...@@ -8,13 +8,13 @@ void bch2_reflink_p_to_text(struct printbuf *, struct bch_fs *, ...@@ -8,13 +8,13 @@ void bch2_reflink_p_to_text(struct printbuf *, struct bch_fs *,
struct bkey_s_c); struct bkey_s_c);
bool bch2_reflink_p_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c); bool bch2_reflink_p_merge(struct bch_fs *, struct bkey_s, struct bkey_s_c);
#define bch2_bkey_ops_reflink_p (struct bkey_ops) { \ #define bch2_bkey_ops_reflink_p ((struct bkey_ops) { \
.key_invalid = bch2_reflink_p_invalid, \ .key_invalid = bch2_reflink_p_invalid, \
.val_to_text = bch2_reflink_p_to_text, \ .val_to_text = bch2_reflink_p_to_text, \
.key_merge = bch2_reflink_p_merge, \ .key_merge = bch2_reflink_p_merge, \
.trans_trigger = bch2_trans_mark_reflink_p, \ .trans_trigger = bch2_trans_mark_reflink_p, \
.atomic_trigger = bch2_mark_reflink_p, \ .atomic_trigger = bch2_mark_reflink_p, \
} })
int bch2_reflink_v_invalid(const struct bch_fs *, struct bkey_s_c, int bch2_reflink_v_invalid(const struct bch_fs *, struct bkey_s_c,
int, struct printbuf *); int, struct printbuf *);
...@@ -23,13 +23,13 @@ void bch2_reflink_v_to_text(struct printbuf *, struct bch_fs *, ...@@ -23,13 +23,13 @@ void bch2_reflink_v_to_text(struct printbuf *, struct bch_fs *,
int bch2_trans_mark_reflink_v(struct btree_trans *, enum btree_id, unsigned, int bch2_trans_mark_reflink_v(struct btree_trans *, enum btree_id, unsigned,
struct bkey_s_c, struct bkey_i *, unsigned); struct bkey_s_c, struct bkey_i *, unsigned);
#define bch2_bkey_ops_reflink_v (struct bkey_ops) { \ #define bch2_bkey_ops_reflink_v ((struct bkey_ops) { \
.key_invalid = bch2_reflink_v_invalid, \ .key_invalid = bch2_reflink_v_invalid, \
.val_to_text = bch2_reflink_v_to_text, \ .val_to_text = bch2_reflink_v_to_text, \
.swab = bch2_ptr_swab, \ .swab = bch2_ptr_swab, \
.trans_trigger = bch2_trans_mark_reflink_v, \ .trans_trigger = bch2_trans_mark_reflink_v, \
.atomic_trigger = bch2_mark_extent, \ .atomic_trigger = bch2_mark_extent, \
} })
int bch2_indirect_inline_data_invalid(const struct bch_fs *, struct bkey_s_c, int bch2_indirect_inline_data_invalid(const struct bch_fs *, struct bkey_s_c,
int, struct printbuf *); int, struct printbuf *);
...@@ -40,11 +40,11 @@ int bch2_trans_mark_indirect_inline_data(struct btree_trans *, ...@@ -40,11 +40,11 @@ int bch2_trans_mark_indirect_inline_data(struct btree_trans *,
struct bkey_s_c, struct bkey_i *, struct bkey_s_c, struct bkey_i *,
unsigned); unsigned);
#define bch2_bkey_ops_indirect_inline_data (struct bkey_ops) { \ #define bch2_bkey_ops_indirect_inline_data ((struct bkey_ops) { \
.key_invalid = bch2_indirect_inline_data_invalid, \ .key_invalid = bch2_indirect_inline_data_invalid, \
.val_to_text = bch2_indirect_inline_data_to_text, \ .val_to_text = bch2_indirect_inline_data_to_text, \
.trans_trigger = bch2_trans_mark_indirect_inline_data, \ .trans_trigger = bch2_trans_mark_indirect_inline_data, \
} })
static inline const __le64 *bkey_refcount_c(struct bkey_s_c k) static inline const __le64 *bkey_refcount_c(struct bkey_s_c k)
{ {
......
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _BCACHEFS_REPLICAS_TYPES_H #ifndef _BCACHEFS_REPLICAS_TYPES_H
#define _BCACHEFS_REPLICAS_TYPES_H #define _BCACHEFS_REPLICAS_TYPES_H
......
...@@ -158,6 +158,7 @@ static int bch2_snapshot_set_equiv(struct btree_trans *trans, struct bkey_s_c k) ...@@ -158,6 +158,7 @@ static int bch2_snapshot_set_equiv(struct btree_trans *trans, struct bkey_s_c k)
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
int ret = snapshot_live(trans, child[i]); int ret = snapshot_live(trans, child[i]);
if (ret < 0) if (ret < 0)
return ret; return ret;
......
...@@ -9,10 +9,10 @@ void bch2_snapshot_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); ...@@ -9,10 +9,10 @@ void bch2_snapshot_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
int bch2_snapshot_invalid(const struct bch_fs *, struct bkey_s_c, int bch2_snapshot_invalid(const struct bch_fs *, struct bkey_s_c,
int rw, struct printbuf *); int rw, struct printbuf *);
#define bch2_bkey_ops_snapshot (struct bkey_ops) { \ #define bch2_bkey_ops_snapshot ((struct bkey_ops) { \
.key_invalid = bch2_snapshot_invalid, \ .key_invalid = bch2_snapshot_invalid, \
.val_to_text = bch2_snapshot_to_text, \ .val_to_text = bch2_snapshot_to_text, \
} })
int bch2_mark_snapshot(struct btree_trans *, struct bkey_s_c, int bch2_mark_snapshot(struct btree_trans *, struct bkey_s_c,
struct bkey_s_c, unsigned); struct bkey_s_c, unsigned);
...@@ -109,10 +109,10 @@ int bch2_subvolume_invalid(const struct bch_fs *, struct bkey_s_c, ...@@ -109,10 +109,10 @@ int bch2_subvolume_invalid(const struct bch_fs *, struct bkey_s_c,
int rw, struct printbuf *); int rw, struct printbuf *);
void bch2_subvolume_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); void bch2_subvolume_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
#define bch2_bkey_ops_subvolume (struct bkey_ops) { \ #define bch2_bkey_ops_subvolume ((struct bkey_ops) { \
.key_invalid = bch2_subvolume_invalid, \ .key_invalid = bch2_subvolume_invalid, \
.val_to_text = bch2_subvolume_to_text, \ .val_to_text = bch2_subvolume_to_text, \
} })
int bch2_subvolume_get(struct btree_trans *, unsigned, int bch2_subvolume_get(struct btree_trans *, unsigned,
bool, int, struct bch_subvolume *); bool, int, struct bch_subvolume *);
......
...@@ -89,9 +89,9 @@ static ssize_t fn ## _store_inner(struct kobject *kobj, struct attribute *attr,\ ...@@ -89,9 +89,9 @@ static ssize_t fn ## _store_inner(struct kobject *kobj, struct attribute *attr,\
static struct attribute sysfs_##_name = \ static struct attribute sysfs_##_name = \
{ .name = #_name, .mode = _mode } { .name = #_name, .mode = _mode }
#define write_attribute(n) __sysfs_attribute(n, S_IWUSR) #define write_attribute(n) __sysfs_attribute(n, 0200)
#define read_attribute(n) __sysfs_attribute(n, S_IRUGO) #define read_attribute(n) __sysfs_attribute(n, 0444)
#define rw_attribute(n) __sysfs_attribute(n, S_IRUGO|S_IWUSR) #define rw_attribute(n) __sysfs_attribute(n, 0644)
#define sysfs_printf(file, fmt, ...) \ #define sysfs_printf(file, fmt, ...) \
do { \ do { \
...@@ -228,13 +228,13 @@ write_attribute(perf_test); ...@@ -228,13 +228,13 @@ write_attribute(perf_test);
#define x(_name) \ #define x(_name) \
static struct attribute sysfs_time_stat_##_name = \ static struct attribute sysfs_time_stat_##_name = \
{ .name = #_name, .mode = S_IRUGO }; { .name = #_name, .mode = 0444 };
BCH_TIME_STATS() BCH_TIME_STATS()
#undef x #undef x
static struct attribute sysfs_state_rw = { static struct attribute sysfs_state_rw = {
.name = "state", .name = "state",
.mode = S_IRUGO .mode = 0444,
}; };
static size_t bch2_btree_cache_size(struct bch_fs *c) static size_t bch2_btree_cache_size(struct bch_fs *c)
...@@ -610,12 +610,14 @@ struct attribute *bch2_fs_counters_files[] = { ...@@ -610,12 +610,14 @@ struct attribute *bch2_fs_counters_files[] = {
SHOW(bch2_fs_internal) SHOW(bch2_fs_internal)
{ {
struct bch_fs *c = container_of(kobj, struct bch_fs, internal); struct bch_fs *c = container_of(kobj, struct bch_fs, internal);
return bch2_fs_to_text(out, &c->kobj, attr); return bch2_fs_to_text(out, &c->kobj, attr);
} }
STORE(bch2_fs_internal) STORE(bch2_fs_internal)
{ {
struct bch_fs *c = container_of(kobj, struct bch_fs, internal); struct bch_fs *c = container_of(kobj, struct bch_fs, internal);
return bch2_fs_store(&c->kobj, attr, buf, size); return bch2_fs_store(&c->kobj, attr, buf, size);
} }
SYSFS_OPS(bch2_fs_internal); SYSFS_OPS(bch2_fs_internal);
......
...@@ -354,7 +354,7 @@ TRACE_EVENT(btree_reserve_get_fail, ...@@ -354,7 +354,7 @@ TRACE_EVENT(btree_reserve_get_fail,
), ),
TP_fast_assign( TP_fast_assign(
strlcpy(__entry->trans_fn, trans_fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans_fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
__entry->required = required; __entry->required = required;
), ),
...@@ -411,7 +411,7 @@ TRACE_EVENT(btree_path_relock_fail, ...@@ -411,7 +411,7 @@ TRACE_EVENT(btree_path_relock_fail,
TP_fast_assign( TP_fast_assign(
struct btree *b = btree_path_node(path, level); struct btree *b = btree_path_node(path, level);
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
__entry->btree_id = path->btree_id; __entry->btree_id = path->btree_id;
__entry->level = path->level; __entry->level = path->level;
...@@ -462,7 +462,7 @@ TRACE_EVENT(btree_path_upgrade_fail, ...@@ -462,7 +462,7 @@ TRACE_EVENT(btree_path_upgrade_fail,
TP_fast_assign( TP_fast_assign(
struct six_lock_count c; struct six_lock_count c;
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
__entry->btree_id = path->btree_id; __entry->btree_id = path->btree_id;
__entry->level = level; __entry->level = level;
...@@ -544,7 +544,7 @@ DECLARE_EVENT_CLASS(bucket_alloc, ...@@ -544,7 +544,7 @@ DECLARE_EVENT_CLASS(bucket_alloc,
TP_fast_assign( TP_fast_assign(
__entry->dev = ca->dev; __entry->dev = ca->dev;
strlcpy(__entry->reserve, alloc_reserve, sizeof(__entry->reserve)); strscpy(__entry->reserve, alloc_reserve, sizeof(__entry->reserve));
__entry->user = user; __entry->user = user;
__entry->bucket = bucket; __entry->bucket = bucket;
__entry->free = free; __entry->free = free;
...@@ -556,7 +556,7 @@ DECLARE_EVENT_CLASS(bucket_alloc, ...@@ -556,7 +556,7 @@ DECLARE_EVENT_CLASS(bucket_alloc,
__entry->need_journal_commit = s->skipped_need_journal_commit; __entry->need_journal_commit = s->skipped_need_journal_commit;
__entry->nouse = s->skipped_nouse; __entry->nouse = s->skipped_nouse;
__entry->nonblocking = nonblocking; __entry->nonblocking = nonblocking;
strlcpy(__entry->err, err, sizeof(__entry->err)); strscpy(__entry->err, err, sizeof(__entry->err));
), ),
TP_printk("%d,%d reserve %s user %u bucket %llu free %llu avail %llu copygc_wait %llu/%lli seen %llu open %llu need_journal_commit %llu nouse %llu nonblocking %u err %s", TP_printk("%d,%d reserve %s user %u bucket %llu free %llu avail %llu copygc_wait %llu/%lli seen %llu open %llu need_journal_commit %llu nouse %llu nonblocking %u err %s",
...@@ -628,7 +628,7 @@ TRACE_EVENT(discard_buckets, ...@@ -628,7 +628,7 @@ TRACE_EVENT(discard_buckets,
__entry->open = open; __entry->open = open;
__entry->need_journal_commit = need_journal_commit; __entry->need_journal_commit = need_journal_commit;
__entry->discarded = discarded; __entry->discarded = discarded;
strlcpy(__entry->err, err, sizeof(__entry->err)); strscpy(__entry->err, err, sizeof(__entry->err));
), ),
TP_printk("%d%d seen %llu open %llu need_journal_commit %llu discarded %llu err %s", TP_printk("%d%d seen %llu open %llu need_journal_commit %llu discarded %llu err %s",
...@@ -778,7 +778,7 @@ DECLARE_EVENT_CLASS(transaction_event, ...@@ -778,7 +778,7 @@ DECLARE_EVENT_CLASS(transaction_event,
), ),
TP_fast_assign( TP_fast_assign(
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
), ),
...@@ -823,7 +823,7 @@ TRACE_EVENT(trans_restart_journal_preres_get, ...@@ -823,7 +823,7 @@ TRACE_EVENT(trans_restart_journal_preres_get,
), ),
TP_fast_assign( TP_fast_assign(
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
__entry->flags = flags; __entry->flags = flags;
), ),
...@@ -883,7 +883,7 @@ DECLARE_EVENT_CLASS(transaction_restart_iter, ...@@ -883,7 +883,7 @@ DECLARE_EVENT_CLASS(transaction_restart_iter,
), ),
TP_fast_assign( TP_fast_assign(
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
__entry->btree_id = path->btree_id; __entry->btree_id = path->btree_id;
TRACE_BPOS_assign(pos, path->pos) TRACE_BPOS_assign(pos, path->pos)
...@@ -930,7 +930,7 @@ TRACE_EVENT(trans_restart_upgrade, ...@@ -930,7 +930,7 @@ TRACE_EVENT(trans_restart_upgrade,
), ),
TP_fast_assign( TP_fast_assign(
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
__entry->btree_id = path->btree_id; __entry->btree_id = path->btree_id;
__entry->old_locks_want = old_locks_want; __entry->old_locks_want = old_locks_want;
...@@ -1039,7 +1039,7 @@ TRACE_EVENT(trans_restart_would_deadlock_write, ...@@ -1039,7 +1039,7 @@ TRACE_EVENT(trans_restart_would_deadlock_write,
), ),
TP_fast_assign( TP_fast_assign(
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
), ),
TP_printk("%s", __entry->trans_fn) TP_printk("%s", __entry->trans_fn)
...@@ -1058,7 +1058,7 @@ TRACE_EVENT(trans_restart_mem_realloced, ...@@ -1058,7 +1058,7 @@ TRACE_EVENT(trans_restart_mem_realloced,
), ),
TP_fast_assign( TP_fast_assign(
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
__entry->bytes = bytes; __entry->bytes = bytes;
), ),
...@@ -1087,7 +1087,7 @@ TRACE_EVENT(trans_restart_key_cache_key_realloced, ...@@ -1087,7 +1087,7 @@ TRACE_EVENT(trans_restart_key_cache_key_realloced,
), ),
TP_fast_assign( TP_fast_assign(
strlcpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
__entry->caller_ip = caller_ip; __entry->caller_ip = caller_ip;
__entry->btree_id = path->btree_id; __entry->btree_id = path->btree_id;
......
...@@ -9,10 +9,10 @@ extern const struct bch_hash_desc bch2_xattr_hash_desc; ...@@ -9,10 +9,10 @@ extern const struct bch_hash_desc bch2_xattr_hash_desc;
int bch2_xattr_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *); int bch2_xattr_invalid(const struct bch_fs *, struct bkey_s_c, int, struct printbuf *);
void bch2_xattr_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); void bch2_xattr_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
#define bch2_bkey_ops_xattr (struct bkey_ops) { \ #define bch2_bkey_ops_xattr ((struct bkey_ops) { \
.key_invalid = bch2_xattr_invalid, \ .key_invalid = bch2_xattr_invalid, \
.val_to_text = bch2_xattr_to_text, \ .val_to_text = bch2_xattr_to_text, \
} })
static inline unsigned xattr_val_u64s(unsigned name_len, unsigned val_len) static inline unsigned xattr_val_u64s(unsigned name_len, unsigned val_len)
{ {
......
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