bcachefs: bch2_trans_commit_flags_to_text()
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 13 Apr 2024 21:49:23 +0000 (17:49 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 May 2024 21:29:19 +0000 (17:29 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_trans_commit.c
fs/bcachefs/btree_update.h
fs/bcachefs/btree_update_interior.c
fs/bcachefs/btree_update_interior.h

index c5317e74ee0697fdefd674d1245e3044ac6a2348..04831c9e603cc7169f203738957fe92ac2d54f4e 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 
 #include "bcachefs.h"
+#include "alloc_foreground.h"
 #include "btree_gc.h"
 #include "btree_io.h"
 #include "btree_iter.h"
 
 #include <linux/prefetch.h>
 
+static const char * const trans_commit_flags_strs[] = {
+#define x(n, ...) #n,
+       BCH_TRANS_COMMIT_FLAGS()
+#undef x
+       NULL
+};
+
+void bch2_trans_commit_flags_to_text(struct printbuf *out, enum bch_trans_commit_flags flags)
+{
+       enum bch_watermark watermark = flags & BCH_WATERMARK_MASK;
+
+       prt_printf(out, "watermark=%s", bch2_watermarks[watermark]);
+
+       flags >>= BCH_WATERMARK_BITS;
+       if (flags) {
+               prt_char(out, ' ');
+               bch2_prt_bitflags(out, trans_commit_flags_strs, flags);
+       }
+}
+
 static void verify_update_old_key(struct btree_trans *trans, struct btree_insert_entry *i)
 {
 #ifdef CONFIG_BCACHEFS_DEBUG
index 3a04ede35475f892dfa84f4e9cbfc5e7e1daa008..b4894e4d5447fd80da9efabe49bf3755f0466e27 100644 (file)
@@ -44,6 +44,8 @@ enum bch_trans_commit_flags {
 #undef x
 };
 
+void bch2_trans_commit_flags_to_text(struct printbuf *, enum bch_trans_commit_flags);
+
 int bch2_btree_delete_extent_at(struct btree_trans *, struct btree_iter *,
                                unsigned, unsigned);
 int bch2_btree_delete_at(struct btree_trans *, struct btree_iter *, unsigned);
index ce9712d7c764ff497d6c4d9d7021be663aebe30f..4aa62a74a59bf8cf57ccbeb46625ff8ab17d4948 100644 (file)
@@ -1207,7 +1207,7 @@ bch2_btree_update_start(struct btree_trans *trans, struct btree_path *path,
        as->start_time          = start_time;
        as->ip_started          = _RET_IP_;
        as->mode                = BTREE_UPDATE_none;
-       as->watermark           = watermark;
+       as->flags               = flags;
        as->took_gc_lock        = true;
        as->btree_id            = path->btree_id;
        as->update_level_start  = level_start;
@@ -2565,12 +2565,13 @@ void bch2_btree_root_alloc_fake(struct bch_fs *c, enum btree_id id, unsigned lev
 
 static void bch2_btree_update_to_text(struct printbuf *out, struct btree_update *as)
 {
-       prt_printf(out, "%ps: btree=%s l=%u-%u watermark=%s mode=%s nodes_written=%u cl.remaining=%u journal_seq=%llu\n",
-                  (void *) as->ip_started,
+       prt_printf(out, "%ps: ", (void *) as->ip_started);
+       bch2_trans_commit_flags_to_text(out, as->flags);
+
+       prt_printf(out, " btree=%s l=%u-%u mode=%s nodes_written=%u cl.remaining=%u journal_seq=%llu\n",
                   bch2_btree_id_str(as->btree_id),
                   as->update_level_start,
                   as->update_level_end,
-                  bch2_watermarks[as->watermark],
                   bch2_btree_update_modes[as->mode],
                   as->nodes_written,
                   closure_nr_remaining(&as->cl),
index ca1a3be43af8bcf983d03b40c043494bf2f0a349..b2f7f8110c50d5d55f1425ab9caec17f4426cb28 100644 (file)
@@ -52,7 +52,7 @@ struct btree_update {
        struct list_head                unwritten_list;
 
        enum btree_update_mode          mode;
-       enum bch_watermark              watermark;
+       enum bch_trans_commit_flags     flags;
        unsigned                        nodes_written:1;
        unsigned                        took_gc_lock:1;