diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-03-11 20:38:46 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:57 -0400 |
commit | b9fa375bab2786d0d2c5435b5e3fceaf6594aaf3 (patch) | |
tree | 68feec1dff3f2f09c16d2803566812b23d762c3e /fs/bcachefs/io.c | |
parent | 65d48e35250fe46a560dffa13876830336b152c9 (diff) | |
download | lwn-b9fa375bab2786d0d2c5435b5e3fceaf6594aaf3.tar.gz lwn-b9fa375bab2786d0d2c5435b5e3fceaf6594aaf3.zip |
bcachefs: bch2_fs_moving_ctxts_to_text()
This also adds bch2_write_op_to_text(): now we can see outstand moves,
useful for debugging shutdown with the upcoming BCH_WRITE_WAIT_FOR_EC
and likely for other things in the future.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/io.c')
-rw-r--r-- | fs/bcachefs/io.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/fs/bcachefs/io.c b/fs/bcachefs/io.c index 6daf5f4a905c..1b093650ff9a 100644 --- a/fs/bcachefs/io.c +++ b/fs/bcachefs/io.c @@ -1870,6 +1870,34 @@ err: op->end_io(op); } +const char * const bch2_write_flags[] = { +#define x(f) #f, + BCH_WRITE_FLAGS() +#undef x + NULL +}; + +void bch2_write_op_to_text(struct printbuf *out, struct bch_write_op *op) +{ + prt_str(out, "pos: "); + bch2_bpos_to_text(out, op->pos); + prt_newline(out); + printbuf_indent_add(out, 2); + + prt_str(out, "started: "); + bch2_pr_time_units(out, local_clock() - op->start_time); + prt_newline(out); + + prt_str(out, "flags: "); + prt_bitflags(out, bch2_write_flags, op->flags); + prt_newline(out); + + prt_printf(out, "ref: %u", closure_nr_remaining(&op->cl)); + prt_newline(out); + + printbuf_indent_sub(out, 2); +} + /* Cache promotion on read */ struct promote_op { |