diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-05 09:14:14 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-05 09:16:45 -0400 |
commit | 8b06995115a8ade5e0b154311b771279ff97317f (patch) | |
tree | eecd3c3cf493e9441a6b1ed0c0061bce045b7a66 /libbcachefs/debug.c | |
parent | d061c7ea11672438ad339766ef1a73702c0778ab (diff) |
Update bcachefs sources to 2be6fc9b111c bcachefs: bch2_gc_btree() should not use btree_root_lock
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'libbcachefs/debug.c')
-rw-r--r-- | libbcachefs/debug.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libbcachefs/debug.c b/libbcachefs/debug.c index f0d4727c..ebabab17 100644 --- a/libbcachefs/debug.c +++ b/libbcachefs/debug.c @@ -610,7 +610,7 @@ restart: list_sort(&c->btree_trans_list, list_ptr_order_cmp); list_for_each_entry(trans, &c->btree_trans_list, list) { - if ((ulong) trans < i->iter) + if ((ulong) trans <= i->iter) continue; i->iter = (ulong) trans; @@ -832,16 +832,16 @@ static const struct file_operations btree_transaction_stats_op = { static void btree_deadlock_to_text(struct printbuf *out, struct bch_fs *c) { struct btree_trans *trans; - pid_t iter = 0; + ulong iter = 0; restart: seqmutex_lock(&c->btree_trans_lock); - list_for_each_entry(trans, &c->btree_trans_list, list) { - struct task_struct *task = READ_ONCE(trans->locking_wait.task); + list_sort(&c->btree_trans_list, list_ptr_order_cmp); - if (!task || task->pid <= iter) + list_for_each_entry(trans, &c->btree_trans_list, list) { + if ((ulong) trans <= iter) continue; - iter = task->pid; + iter = (ulong) trans; if (!closure_get_not_zero(&trans->ref)) continue; |