]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bcachefs: Factor out jset_entry_log_msg_bytes()
authorKent Overstreet <kent.overstreet@linux.dev>
Thu, 10 Oct 2024 01:51:05 +0000 (21:51 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sat, 21 Dec 2024 06:36:15 +0000 (01:36 -0500)
Needed for improved userspace cmd_list_journal

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs_format.h
fs/bcachefs/journal_io.c

index 79a80a78c2d83117249901cba0de3be64420252d..c5e3824d577184bb03fb5043fe88cb802c0a37b4 100644 (file)
@@ -1219,6 +1219,15 @@ struct jset_entry_log {
        u8                      d[];
 } __packed __aligned(8);
 
+static inline unsigned jset_entry_log_msg_bytes(struct jset_entry_log *l)
+{
+       unsigned b = vstruct_bytes(&l->entry) - offsetof(struct jset_entry_log, d);
+
+       while (b && !l->d[b - 1])
+               --b;
+       return b;
+}
+
 struct jset_entry_datetime {
        struct jset_entry       entry;
        __le64                  seconds;
index fb35dd3363318f0ca94dd8c49c468a623815529f..7c7595e5369bbaec1dc3d02faa7bf99de959117e 100644 (file)
@@ -738,9 +738,8 @@ static void journal_entry_log_to_text(struct printbuf *out, struct bch_fs *c,
                                      struct jset_entry *entry)
 {
        struct jset_entry_log *l = container_of(entry, struct jset_entry_log, entry);
-       unsigned bytes = vstruct_bytes(entry) - offsetof(struct jset_entry_log, d);
 
-       prt_printf(out, "%.*s", bytes, l->d);
+       prt_printf(out, "%.*s", jset_entry_log_msg_bytes(l), l->d);
 }
 
 static int journal_entry_overwrite_validate(struct bch_fs *c,