summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-08-12 04:06:02 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:38 +0300
commitff7dc3651d5bdcc9d9fe4ace3da21f0f5c2bd778 (patch)
treeb564cbe8f4b3e0849467d2884f8744d7a13e4ca6
parent5c0bb66ae341c71e5f62c193ea4d7b0cf278a914 (diff)
downloadlinux-ff7dc3651d5bdcc9d9fe4ace3da21f0f5c2bd778.tar.xz
bcachefs: Print last line in debugfs/btree_transaction_stats
We need to turn the flush_buf() thing into a proper API, to replace seq_file. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/debug.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/bcachefs/debug.c b/fs/bcachefs/debug.c
index c982b0d80c91..183e9f099ca9 100644
--- a/fs/bcachefs/debug.c
+++ b/fs/bcachefs/debug.c
@@ -660,8 +660,7 @@ static ssize_t lock_held_stats_read(struct file *file, char __user *buf,
i->size = size;
i->ret = 0;
- while (i->iter < ARRAY_SIZE(c->btree_transaction_fns) &&
- c->btree_transaction_fns[i->iter]) {
+ while (1) {
struct btree_transaction_stats *s = &c->btree_transaction_stats[i->iter];
err = flush_buf(i);
@@ -671,6 +670,10 @@ static ssize_t lock_held_stats_read(struct file *file, char __user *buf,
if (!i->size)
break;
+ if (i->iter == ARRAY_SIZE(c->btree_transaction_fns) ||
+ !c->btree_transaction_fns[i->iter])
+ break;
+
prt_printf(&i->buf, "%s: ", c->btree_transaction_fns[i->iter]);
prt_newline(&i->buf);
printbuf_indent_add(&i->buf, 2);