summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/md/bcache/btree_cache.c3
-rw-r--r--drivers/md/bcache/btree_cache.h2
-rw-r--r--drivers/md/bcache/btree_gc.c2
-rw-r--r--drivers/md/bcache/btree_io.c10
-rw-r--r--drivers/md/bcache/btree_types.h2
-rw-r--r--drivers/md/bcache/btree_update.c38
-rw-r--r--drivers/md/bcache/debug.c2
-rw-r--r--drivers/md/bcache/extents.c8
-rw-r--r--drivers/md/bcache/io.c8
-rw-r--r--drivers/md/bcache/io_types.h1
-rw-r--r--include/trace/events/bcache.h85
11 files changed, 79 insertions, 82 deletions
diff --git a/drivers/md/bcache/btree_cache.c b/drivers/md/bcache/btree_cache.c
index b1c51e71304b..207cf0f3f1b9 100644
--- a/drivers/md/bcache/btree_cache.c
+++ b/drivers/md/bcache/btree_cache.c
@@ -87,7 +87,6 @@ static struct btree *mca_bucket_alloc(struct cache_set *c, gfp_t gfp)
six_lock_init(&b->lock);
INIT_LIST_HEAD(&b->list);
- b->c = c;
b->writes[1].index = 1;
INIT_LIST_HEAD(&b->write_blocked);
@@ -186,7 +185,7 @@ static int mca_reap(struct cache_set *c, struct btree *b, bool flush)
{
int ret = mca_reap_notrace(c, b, flush);
- trace_bcache_mca_reap(b, ret);
+ trace_bcache_mca_reap(c, b, ret);
return ret;
}
diff --git a/drivers/md/bcache/btree_cache.h b/drivers/md/bcache/btree_cache.h
index 6f02c3aaa890..1939a3d3a785 100644
--- a/drivers/md/bcache/btree_cache.h
+++ b/drivers/md/bcache/btree_cache.h
@@ -51,6 +51,6 @@ static inline unsigned btree_blocks(struct cache_set *c)
return c->sb.btree_node_size >> c->block_bits;
}
-#define btree_node_root(_b) ((_b)->c->btree_roots[(_b)->btree_id].b)
+#define btree_node_root(_c, _b) ((_c)->btree_roots[(_b)->btree_id].b)
#endif /* _BCACHE_BTREE_CACHE_H */
diff --git a/drivers/md/bcache/btree_gc.c b/drivers/md/bcache/btree_gc.c
index ec97a3679902..b25398826f42 100644
--- a/drivers/md/bcache/btree_gc.c
+++ b/drivers/md/bcache/btree_gc.c
@@ -509,7 +509,7 @@ static void bch_coalesce_nodes(struct btree *old_nodes[GC_MERGE_NODES],
goto out;
}
- trace_bcache_btree_gc_coalesce(parent, nr_old_nodes);
+ trace_bcache_btree_gc_coalesce(c, parent, nr_old_nodes);
as = bch_btree_interior_update_alloc(c);
diff --git a/drivers/md/bcache/btree_io.c b/drivers/md/bcache/btree_io.c
index 1a551b4b319b..aecb8f202eaa 100644
--- a/drivers/md/bcache/btree_io.c
+++ b/drivers/md/bcache/btree_io.c
@@ -421,8 +421,8 @@ void bch_btree_init_next(struct cache_set *c, struct btree *b,
#define btree_node_error(b, c, ptr, fmt, ...) \
cache_set_inconsistent(c, \
"btree node error at btree %u level %u/%u bucket %zu block %u u64s %u: " fmt,\
- (b)->btree_id, (b)->level, btree_node_root(b) \
- ? btree_node_root(b)->level : -1, \
+ (b)->btree_id, (b)->level, btree_node_root(c, b) \
+ ? btree_node_root(c, b)->level : -1, \
PTR_BUCKET_NR(ca, ptr), (b)->written, \
(i)->u64s, ##__VA_ARGS__)
@@ -680,7 +680,7 @@ void bch_btree_node_read(struct cache_set *c, struct btree *b)
struct bio *bio;
struct extent_pick_ptr pick;
- trace_bcache_btree_read(b);
+ trace_bcache_btree_read(c, b);
closure_init_stack(&cl);
@@ -782,8 +782,8 @@ static void btree_node_write_done(struct cache_set *c, struct btree *b)
static void btree_node_write_endio(struct bio *bio)
{
struct btree *b = bio->bi_private;
- struct cache_set *c = b->c;
struct bch_write_bio *wbio = to_wbio(bio);
+ struct cache_set *c = wbio->c;
struct bio *orig = wbio->split ? wbio->orig : NULL;
struct closure *cl = !wbio->split ? wbio->cl : NULL;
struct cache *ca = wbio->ca;
@@ -851,7 +851,7 @@ void __bch_btree_node_write(struct cache_set *c, struct btree *b,
return;
}
#endif
- trace_bcache_btree_write(b);
+ trace_bcache_btree_write(c, b);
i = btree_bset_last(b);
BUG_ON(b->written >= c->sb.btree_node_size);
diff --git a/drivers/md/bcache/btree_types.h b/drivers/md/bcache/btree_types.h
index 0f2603fba344..e834a54c2376 100644
--- a/drivers/md/bcache/btree_types.h
+++ b/drivers/md/bcache/btree_types.h
@@ -68,8 +68,6 @@ struct btree {
struct btree_keys keys;
struct btree_node *data;
- struct cache_set *c;
-
struct open_bucket *ob;
/* lru list */
diff --git a/drivers/md/bcache/btree_update.c b/drivers/md/bcache/btree_update.c
index 8b40e74805cf..5ee107de38b3 100644
--- a/drivers/md/bcache/btree_update.c
+++ b/drivers/md/bcache/btree_update.c
@@ -157,9 +157,9 @@ found:
static void __btree_node_free(struct cache_set *c, struct btree *b,
struct btree_iter *iter)
{
- trace_bcache_btree_node_free(b);
+ trace_bcache_btree_node_free(c, b);
- BUG_ON(b == btree_node_root(b));
+ BUG_ON(b == btree_node_root(c, b));
BUG_ON(b->ob);
BUG_ON(!list_empty(&b->write_blocked));
@@ -303,7 +303,7 @@ static struct btree *bch_btree_node_alloc(struct cache_set *c,
bch_check_mark_super(c, &b->key, true);
- trace_bcache_btree_node_alloc(b);
+ trace_bcache_btree_node_alloc(c, b);
return b;
}
@@ -326,7 +326,7 @@ struct btree *__btree_node_alloc_replacement(struct cache_set *c,
btree_node_reset_sib_u64s(n);
n->key.k.p = b->key.k.p;
- trace_bcache_btree_node_alloc_replacement(b, n);
+ trace_bcache_btree_node_alloc_replacement(c, b, n);
return n;
}
@@ -350,7 +350,7 @@ struct btree *btree_node_alloc_replacement(struct cache_set *c,
static void bch_btree_set_root_inmem(struct cache_set *c, struct btree *b,
struct btree_reserve *btree_reserve)
{
- struct btree *old = btree_node_root(b);
+ struct btree *old = btree_node_root(c, b);
/* Root nodes cannot be reaped */
mutex_lock(&c->btree_cache_lock);
@@ -358,7 +358,7 @@ static void bch_btree_set_root_inmem(struct cache_set *c, struct btree *b,
mutex_unlock(&c->btree_cache_lock);
mutex_lock(&c->btree_root_lock);
- btree_node_root(b) = b;
+ btree_node_root(c, b) = b;
mutex_unlock(&c->btree_root_lock);
if (btree_reserve) {
@@ -406,7 +406,7 @@ static void bch_btree_set_root_ondisk(struct cache_set *c, struct btree *b)
void bch_btree_set_root_initial(struct cache_set *c, struct btree *b,
struct btree_reserve *btree_reserve)
{
- BUG_ON(btree_node_root(b));
+ BUG_ON(btree_node_root(c, b));
bch_btree_set_root_inmem(c, b, btree_reserve);
bch_btree_set_root_ondisk(c, b);
@@ -431,10 +431,10 @@ static void bch_btree_set_root(struct btree_iter *iter, struct btree *b,
struct cache_set *c = iter->c;
struct btree *old;
- trace_bcache_btree_set_root(b);
+ trace_bcache_btree_set_root(c, b);
BUG_ON(!b->written);
- old = btree_node_root(b);
+ old = btree_node_root(c, b);
/*
* Ensure no one is using the old root while we switch to the
@@ -575,7 +575,7 @@ struct btree_reserve *bch_btree_reserve_get(struct cache_set *c,
unsigned flags,
struct closure *cl)
{
- unsigned depth = btree_node_root(b)->level - b->level;
+ unsigned depth = btree_node_root(c, b)->level - b->level;
unsigned nr_nodes = btree_reserve_required_nodes(depth) + extra_nodes;
return __bch_btree_reserve_get(c, nr_nodes, flags, cl);
@@ -1106,13 +1106,14 @@ bch_btree_insert_keys_interior(struct btree *b,
struct btree_interior_update *as,
struct btree_reserve *res)
{
+ struct cache_set *c = iter->c;
struct btree_iter *linked;
struct btree_node_iter node_iter;
const struct bkey_format *f = &b->keys.format;
struct bkey_i *insert = bch_keylist_front(insert_keys);
struct bkey_packed *k;
- BUG_ON(!btree_node_intent_locked(iter, btree_node_root(b)->level));
+ BUG_ON(!btree_node_intent_locked(iter, btree_node_root(c, b)->level));
BUG_ON(!b->level);
BUG_ON(!as || as->b);
verify_keys_sorted(insert_keys);
@@ -1315,8 +1316,8 @@ static void btree_split(struct btree *b, struct btree_iter *iter,
struct btree *n1, *n2 = NULL, *n3 = NULL;
u64 start_time = local_clock();
- BUG_ON(!parent && (b != btree_node_root(b)));
- BUG_ON(!btree_node_intent_locked(iter, btree_node_root(b)->level));
+ BUG_ON(!parent && (b != btree_node_root(c, b)));
+ BUG_ON(!btree_node_intent_locked(iter, btree_node_root(c, b)->level));
bch_btree_interior_update_will_free_node(c, as, b);
@@ -1327,7 +1328,7 @@ static void btree_split(struct btree *b, struct btree_iter *iter,
if (__set_blocks(n1->data,
le16_to_cpu(n1->data->keys.u64s),
block_bytes(c)) > BTREE_SPLIT_THRESHOLD(c)) {
- trace_bcache_btree_node_split(b, b->keys.nr.live_u64s);
+ trace_bcache_btree_node_split(c, b, b->keys.nr.live_u64s);
n2 = __btree_split_node(iter, n1, reserve);
@@ -1360,7 +1361,7 @@ static void btree_split(struct btree *b, struct btree_iter *iter,
NULL, -1);
}
} else {
- trace_bcache_btree_node_compact(b, b->keys.nr.live_u64s);
+ trace_bcache_btree_node_compact(c, b, b->keys.nr.live_u64s);
bch_btree_build_aux_trees(n1);
six_unlock_write(&n1->lock);
@@ -1709,6 +1710,7 @@ btree_insert_key(struct btree_insert *trans,
struct btree_insert_entry *insert,
struct journal_res *res)
{
+ struct cache_set *c = trans->c;
struct btree_iter *iter = insert->iter;
struct btree *b = iter->nodes[0];
enum btree_insert_ret ret;
@@ -1732,7 +1734,7 @@ btree_insert_key(struct btree_insert *trans,
bch_maybe_compact_deleted_keys(&b->keys))
bch_btree_iter_reinit_node(iter, b);
- trace_bcache_btree_insert_key(b, insert->k);
+ trace_bcache_btree_insert_key(c, b, insert->k);
return ret;
}
@@ -2181,7 +2183,7 @@ int bch_btree_node_rewrite(struct btree_iter *iter, struct btree *b,
reserve = bch_btree_reserve_get(c, b, 0, flags, cl);
if (IS_ERR(reserve)) {
- trace_bcache_btree_gc_rewrite_node_fail(b);
+ trace_bcache_btree_gc_rewrite_node_fail(c, b);
return PTR_ERR(reserve);
}
@@ -2194,7 +2196,7 @@ int bch_btree_node_rewrite(struct btree_iter *iter, struct btree *b,
bch_btree_build_aux_trees(n);
six_unlock_write(&n->lock);
- trace_bcache_btree_gc_rewrite_node(b);
+ trace_bcache_btree_gc_rewrite_node(c, b);
bch_btree_node_write(c, n, &as->cl, SIX_LOCK_intent, NULL, -1);
diff --git a/drivers/md/bcache/debug.c b/drivers/md/bcache/debug.c
index f691c17371ee..cdbd37ce6b32 100644
--- a/drivers/md/bcache/debug.c
+++ b/drivers/md/bcache/debug.c
@@ -59,7 +59,7 @@ void __bch_btree_verify(struct cache_set *c, struct btree *b)
v->written = 0;
v->level = b->level;
v->btree_id = b->btree_id;
- bch_btree_keys_init(&v->keys, &v->c->expensive_debug_checks);
+ bch_btree_keys_init(&v->keys, &c->expensive_debug_checks);
pick = bch_btree_pick_ptr(c, b);
if (IS_ERR_OR_NULL(pick.ca))
diff --git a/drivers/md/bcache/extents.c b/drivers/md/bcache/extents.c
index c25d90b23c31..33687fc82ac4 100644
--- a/drivers/md/bcache/extents.c
+++ b/drivers/md/bcache/extents.c
@@ -566,17 +566,17 @@ bch_btree_pick_ptr(struct cache_set *c, const struct btree *b)
rcu_read_lock();
extent_for_each_online_device_crc(c, e, crc, ptr, ca) {
+ struct btree *root = btree_node_root(c, b);
+
if (cache_set_inconsistent_on(crc, c,
"btree node pointer with crc at btree %u level %u/%u bucket %zu",
- b->btree_id, b->level, btree_node_root(b)
- ? btree_node_root(b)->level : -1,
+ b->btree_id, b->level, root ? root->level : -1,
PTR_BUCKET_NR(ca, ptr)))
break;
if (cache_inconsistent_on(ptr_stale(ca, ptr), ca,
"stale btree node pointer at btree %u level %u/%u bucket %zu",
- b->btree_id, b->level, btree_node_root(b)
- ? btree_node_root(b)->level : -1,
+ b->btree_id, b->level, root ? root->level : -1,
PTR_BUCKET_NR(ca, ptr)))
continue;
diff --git a/drivers/md/bcache/io.c b/drivers/md/bcache/io.c
index c8dc3cb900a8..9f32f4817c09 100644
--- a/drivers/md/bcache/io.c
+++ b/drivers/md/bcache/io.c
@@ -141,6 +141,7 @@ void bch_submit_wbio_replicas(struct bch_write_bio *wbio, struct cache_set *c,
struct cache *ca;
wbio->split = false;
+ wbio->c = c;
extent_for_each_ptr(e, ptr) {
rcu_read_lock();
@@ -160,6 +161,7 @@ void bch_submit_wbio_replicas(struct bch_write_bio *wbio, struct cache_set *c,
n->bio.bi_end_io = wbio->bio.bi_end_io;
n->bio.bi_private = wbio->bio.bi_private;
+ n->c = c;
n->orig = &wbio->bio;
n->bounce = false;
n->split = true;
@@ -337,14 +339,14 @@ static void bch_write_io_error(struct closure *cl)
static void bch_write_endio(struct bio *bio)
{
struct closure *cl = bio->bi_private;
- struct bch_write_op *op = container_of(cl, struct bch_write_op, cl);
struct bch_write_bio *wbio = to_wbio(bio);
+ struct cache_set *c = wbio->c;
struct bio *orig = wbio->orig;
struct cache *ca = wbio->ca;
if (cache_nonfatal_io_err_on(bio->bi_error, ca,
"data write"))
- set_closure_fn(cl, bch_write_io_error, op->c->wq);
+ set_closure_fn(cl, bch_write_io_error, c->wq);
bch_account_io_completion_time(ca, wbio->submit_time_us,
REQ_OP_WRITE);
@@ -355,7 +357,7 @@ static void bch_write_endio(struct bio *bio)
orig->bi_error = bio->bi_error;
if (wbio->bounce)
- bch_bio_free_pages_pool(op->c, bio);
+ bch_bio_free_pages_pool(c, bio);
if (wbio->put_bio)
bio_put(bio);
diff --git a/drivers/md/bcache/io_types.h b/drivers/md/bcache/io_types.h
index b8c47978a9e9..2760d0f0edd8 100644
--- a/drivers/md/bcache/io_types.h
+++ b/drivers/md/bcache/io_types.h
@@ -62,6 +62,7 @@ bch_rbio_parent(struct bch_read_bio *rbio)
}
struct bch_write_bio {
+ struct cache_set *c;
struct cache *ca;
union {
struct bio *orig;
diff --git a/include/trace/events/bcache.h b/include/trace/events/bcache.h
index 6397b0f0ae69..02e3fafcf66d 100644
--- a/include/trace/events/bcache.h
+++ b/include/trace/events/bcache.h
@@ -415,8 +415,8 @@ DEFINE_EVENT(bpos, bkey_pack_pos_lossy_fail,
/* Btree */
DECLARE_EVENT_CLASS(btree_node,
- TP_PROTO(struct btree *b),
- TP_ARGS(b),
+ TP_PROTO(struct cache_set *c, struct btree *b),
+ TP_ARGS(c, b),
TP_STRUCT__entry(
__array(char, uuid, 16 )
@@ -428,8 +428,8 @@ DECLARE_EVENT_CLASS(btree_node,
),
TP_fast_assign(
- memcpy(__entry->uuid, b->c->disk_sb.user_uuid.b, 16);
- __entry->bucket = PTR_BUCKET_NR_TRACE(b->c, &b->key, 0);
+ memcpy(__entry->uuid, c->disk_sb.user_uuid.b, 16);
+ __entry->bucket = PTR_BUCKET_NR_TRACE(c, &b->key, 0);
__entry->level = b->level;
__entry->id = b->btree_id;
__entry->inode = b->key.k.p.inode;
@@ -442,13 +442,13 @@ DECLARE_EVENT_CLASS(btree_node,
);
DEFINE_EVENT(btree_node, bcache_btree_read,
- TP_PROTO(struct btree *b),
- TP_ARGS(b)
+ TP_PROTO(struct cache_set *c, struct btree *b),
+ TP_ARGS(c, b)
);
TRACE_EVENT(bcache_btree_write,
- TP_PROTO(struct btree *b),
- TP_ARGS(b),
+ TP_PROTO(struct cache_set *c, struct btree *b),
+ TP_ARGS(c, b),
TP_STRUCT__entry(
__field(u64, bucket )
@@ -457,7 +457,7 @@ TRACE_EVENT(bcache_btree_write,
),
TP_fast_assign(
- __entry->bucket = PTR_BUCKET_NR_TRACE(b->c, &b->key, 0);
+ __entry->bucket = PTR_BUCKET_NR_TRACE(c, &b->key, 0);
__entry->block = b->written;
__entry->u64s = le16_to_cpu(b->keys.set[b->keys.nsets].data->u64s);
),
@@ -466,14 +466,9 @@ TRACE_EVENT(bcache_btree_write,
__entry->bucket, __entry->block, __entry->u64s)
);
-DEFINE_EVENT(btree_node, bcache_btree_bounce_write_fail,
- TP_PROTO(struct btree *b),
- TP_ARGS(b)
-);
-
DEFINE_EVENT(btree_node, bcache_btree_node_alloc,
- TP_PROTO(struct btree *b),
- TP_ARGS(b)
+ TP_PROTO(struct cache_set *c, struct btree *b),
+ TP_ARGS(c, b)
);
TRACE_EVENT(bcache_btree_node_alloc_fail,
@@ -494,13 +489,13 @@ TRACE_EVENT(bcache_btree_node_alloc_fail,
);
DEFINE_EVENT(btree_node, bcache_btree_node_free,
- TP_PROTO(struct btree *b),
- TP_ARGS(b)
+ TP_PROTO(struct cache_set *c, struct btree *b),
+ TP_ARGS(c, b)
);
TRACE_EVENT(bcache_mca_reap,
- TP_PROTO(struct btree *b, int ret),
- TP_ARGS(b, ret),
+ TP_PROTO(struct cache_set *c, struct btree *b, int ret),
+ TP_ARGS(c, b, ret),
TP_STRUCT__entry(
__field(u64, bucket )
@@ -508,7 +503,7 @@ TRACE_EVENT(bcache_mca_reap,
),
TP_fast_assign(
- __entry->bucket = PTR_BUCKET_NR_TRACE(b->c, &b->key, 0);
+ __entry->bucket = PTR_BUCKET_NR_TRACE(c, &b->key, 0);
__entry->ret = ret;
),
@@ -577,8 +572,8 @@ DEFINE_EVENT(cache_set, bcache_mca_cannibalize_unlock,
);
TRACE_EVENT(bcache_btree_insert_key,
- TP_PROTO(struct btree *b, struct bkey_i *k),
- TP_ARGS(b, k),
+ TP_PROTO(struct cache_set *c, struct btree *b, struct bkey_i *k),
+ TP_ARGS(c, b, k),
TP_STRUCT__entry(
__field(u64, b_bucket )
@@ -592,7 +587,7 @@ TRACE_EVENT(bcache_btree_insert_key,
),
TP_fast_assign(
- __entry->b_bucket = PTR_BUCKET_NR_TRACE(b->c, &b->key, 0);
+ __entry->b_bucket = PTR_BUCKET_NR_TRACE(c, &b->key, 0);
__entry->level = b->level;
__entry->id = b->btree_id;
__entry->b_inode = b->key.k.p.inode;
@@ -609,8 +604,8 @@ TRACE_EVENT(bcache_btree_insert_key,
);
DECLARE_EVENT_CLASS(btree_split,
- TP_PROTO(struct btree *b, unsigned keys),
- TP_ARGS(b, keys),
+ TP_PROTO(struct cache_set *c, struct btree *b, unsigned keys),
+ TP_ARGS(c, b, keys),
TP_STRUCT__entry(
__field(u64, bucket )
@@ -622,7 +617,7 @@ DECLARE_EVENT_CLASS(btree_split,
),
TP_fast_assign(
- __entry->bucket = PTR_BUCKET_NR_TRACE(b->c, &b->key, 0);
+ __entry->bucket = PTR_BUCKET_NR_TRACE(c, &b->key, 0);
__entry->level = b->level;
__entry->id = b->btree_id;
__entry->inode = b->key.k.p.inode;
@@ -636,25 +631,25 @@ DECLARE_EVENT_CLASS(btree_split,
);
DEFINE_EVENT(btree_split, bcache_btree_node_split,
- TP_PROTO(struct btree *b, unsigned keys),
- TP_ARGS(b, keys)
+ TP_PROTO(struct cache_set *c, struct btree *b, unsigned keys),
+ TP_ARGS(c, b, keys)
);
DEFINE_EVENT(btree_split, bcache_btree_node_compact,
- TP_PROTO(struct btree *b, unsigned keys),
- TP_ARGS(b, keys)
+ TP_PROTO(struct cache_set *c, struct btree *b, unsigned keys),
+ TP_ARGS(c, b, keys)
);
DEFINE_EVENT(btree_node, bcache_btree_set_root,
- TP_PROTO(struct btree *b),
- TP_ARGS(b)
+ TP_PROTO(struct cache_set *c, struct btree *b),
+ TP_ARGS(c, b)
);
/* Garbage collection */
TRACE_EVENT(bcache_btree_gc_coalesce,
- TP_PROTO(struct btree *b, unsigned nodes),
- TP_ARGS(b, nodes),
+ TP_PROTO(struct cache_set *c, struct btree *b, unsigned nodes),
+ TP_ARGS(c, b, nodes),
TP_STRUCT__entry(
__field(u64, bucket )
@@ -666,7 +661,7 @@ TRACE_EVENT(bcache_btree_gc_coalesce,
),
TP_fast_assign(
- __entry->bucket = PTR_BUCKET_NR_TRACE(b->c, &b->key, 0);
+ __entry->bucket = PTR_BUCKET_NR_TRACE(c, &b->key, 0);
__entry->level = b->level;
__entry->id = b->btree_id;
__entry->inode = b->key.k.p.inode;
@@ -697,8 +692,8 @@ TRACE_EVENT(bcache_btree_gc_coalesce_fail,
);
TRACE_EVENT(bcache_btree_node_alloc_replacement,
- TP_PROTO(struct btree *old, struct btree *b),
- TP_ARGS(old, b),
+ TP_PROTO(struct cache_set *c, struct btree *old, struct btree *b),
+ TP_ARGS(c, old, b),
TP_STRUCT__entry(
__array(char, uuid, 16 )
@@ -711,10 +706,10 @@ TRACE_EVENT(bcache_btree_node_alloc_replacement,
),
TP_fast_assign(
- memcpy(__entry->uuid, b->c->disk_sb.user_uuid.b, 16);
- __entry->old_bucket = PTR_BUCKET_NR_TRACE(old->c,
+ memcpy(__entry->uuid, c->disk_sb.user_uuid.b, 16);
+ __entry->old_bucket = PTR_BUCKET_NR_TRACE(c,
&old->key, 0);
- __entry->bucket = PTR_BUCKET_NR_TRACE(b->c, &b->key, 0);
+ __entry->bucket = PTR_BUCKET_NR_TRACE(c, &b->key, 0);
__entry->level = b->level;
__entry->id = b->btree_id;
__entry->inode = b->key.k.p.inode;
@@ -728,13 +723,13 @@ TRACE_EVENT(bcache_btree_node_alloc_replacement,
);
DEFINE_EVENT(btree_node, bcache_btree_gc_rewrite_node,
- TP_PROTO(struct btree *b),
- TP_ARGS(b)
+ TP_PROTO(struct cache_set *c, struct btree *b),
+ TP_ARGS(c, b)
);
DEFINE_EVENT(btree_node, bcache_btree_gc_rewrite_node_fail,
- TP_PROTO(struct btree *b),
- TP_ARGS(b)
+ TP_PROTO(struct cache_set *c, struct btree *b),
+ TP_ARGS(c, b)
);
DEFINE_EVENT(cache_set, bcache_gc_start,