diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-26 22:20:34 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-14 19:00:12 -0400 |
commit | 3811f48aa3d6ab97b199bdf4bdacce7abe7cfdeb (patch) | |
tree | 1d5c0e36194c8cffdf7611f5a777e3d44fdc8c12 | |
parent | babe30fe8db62b79f7e3df4144acc344b3672f60 (diff) | |
download | linux-stable-3811f48aa3d6ab97b199bdf4bdacce7abe7cfdeb.tar.gz linux-stable-3811f48aa3d6ab97b199bdf4bdacce7abe7cfdeb.tar.bz2 linux-stable-3811f48aa3d6ab97b199bdf4bdacce7abe7cfdeb.zip |
bcachefs: bch2_printbuf_strip_trailing_newline()
Add a new helper to fix inode_to_text()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/inode.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/printbuf.c | 14 | ||||
-rw-r--r-- | fs/bcachefs/printbuf.h | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c index 4fd8c736744a..84d5385e1046 100644 --- a/fs/bcachefs/inode.c +++ b/fs/bcachefs/inode.c @@ -551,6 +551,8 @@ static void __bch2_inode_unpacked_to_text(struct printbuf *out, prt_printf(out, #_name "=%llu\n", (u64) inode->_name); BCH_INODE_FIELDS_v3() #undef x + + bch2_printbuf_strip_trailing_newline(out); printbuf_indent_sub(out, 2); } diff --git a/fs/bcachefs/printbuf.c b/fs/bcachefs/printbuf.c index 9f529e4c1b16..4cf5a2af1e6f 100644 --- a/fs/bcachefs/printbuf.c +++ b/fs/bcachefs/printbuf.c @@ -316,6 +316,20 @@ void bch2_prt_newline(struct printbuf *buf) buf->cur_tabstop = 0; } +void bch2_printbuf_strip_trailing_newline(struct printbuf *out) +{ + for (int p = out->pos - 1; p >= 0; --p) { + if (out->buf[p] == '\n') { + out->pos = p; + break; + } + if (out->buf[p] != ' ') + break; + } + + printbuf_nul_terminate_reserved(out); +} + static void __prt_tab(struct printbuf *out) { int spaces = max_t(int, 0, cur_tabstop(out) - printbuf_linelen(out)); diff --git a/fs/bcachefs/printbuf.h b/fs/bcachefs/printbuf.h index 9ecc56bc9635..1d570387b77f 100644 --- a/fs/bcachefs/printbuf.h +++ b/fs/bcachefs/printbuf.h @@ -115,6 +115,7 @@ void bch2_printbuf_indent_add(struct printbuf *, unsigned); void bch2_printbuf_indent_sub(struct printbuf *, unsigned); void bch2_prt_newline(struct printbuf *); +void bch2_printbuf_strip_trailing_newline(struct printbuf *); void bch2_prt_tab(struct printbuf *); void bch2_prt_tab_rjust(struct printbuf *); |