diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2016-11-17 12:30:41 -0900 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2017-01-18 21:41:05 -0900 |
commit | 063698ac0d795d61e1e4525a78af8b84754a945b (patch) | |
tree | df983c09b5dc0ce4d388469a2fc537a0266772e7 | |
parent | 551151570be58a57753cd01beaed0a52a59726d7 (diff) |
bcache: kill b->c
-rw-r--r-- | drivers/md/bcache/btree_cache.c | 3 | ||||
-rw-r--r-- | drivers/md/bcache/btree_cache.h | 2 | ||||
-rw-r--r-- | drivers/md/bcache/btree_gc.c | 2 | ||||
-rw-r--r-- | drivers/md/bcache/btree_io.c | 10 | ||||
-rw-r--r-- | drivers/md/bcache/btree_types.h | 2 | ||||
-rw-r--r-- | drivers/md/bcache/btree_update.c | 38 | ||||
-rw-r--r-- | drivers/md/bcache/debug.c | 2 | ||||
-rw-r--r-- | drivers/md/bcache/extents.c | 8 | ||||
-rw-r--r-- | drivers/md/bcache/io.c | 8 | ||||
-rw-r--r-- | drivers/md/bcache/io_types.h | 1 | ||||
-rw-r--r-- | include/trace/events/bcache.h | 85 |
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, |