bcachefs: bch2_dev_usage_to_text()
authorKent Overstreet <kent.overstreet@linux.dev>
Thu, 23 Nov 2023 23:25:31 +0000 (18:25 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 1 Jan 2024 16:47:38 +0000 (11:47 -0500)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/buckets.c
fs/bcachefs/buckets.h
fs/bcachefs/sysfs.c

index bb2ded894b7ee2004844bb4e9bbc7096bbb710bc..36ed3c53e81c00b9bf321eb728af2754709dbc1d 100644 (file)
@@ -277,6 +277,36 @@ void bch2_dev_usage_init(struct bch_dev *ca)
        ca->usage_base->d[BCH_DATA_free].buckets = ca->mi.nbuckets - ca->mi.first_bucket;
 }
 
+void bch2_dev_usage_to_text(struct printbuf *out, struct bch_dev_usage *usage)
+{
+       prt_tab(out);
+       prt_str(out, "buckets");
+       prt_tab_rjust(out);
+       prt_str(out, "sectors");
+       prt_tab_rjust(out);
+       prt_str(out, "fragmented");
+       prt_tab_rjust(out);
+       prt_newline(out);
+
+       for (unsigned i = 0; i < BCH_DATA_NR; i++) {
+               prt_str(out, bch2_data_types[i]);
+               prt_tab(out);
+               prt_u64(out, usage->d[i].buckets);
+               prt_tab_rjust(out);
+               prt_u64(out, usage->d[i].sectors);
+               prt_tab_rjust(out);
+               prt_u64(out, usage->d[i].fragmented);
+               prt_tab_rjust(out);
+               prt_newline(out);
+       }
+
+       prt_str(out, "ec");
+       prt_tab(out);
+       prt_u64(out, usage->buckets_ec);
+       prt_tab_rjust(out);
+       prt_newline(out);
+}
+
 static void bch2_dev_usage_update(struct bch_fs *c, struct bch_dev *ca,
                                  struct bch_alloc_v4 old,
                                  struct bch_alloc_v4 new,
index 5574b62e0553074a706678208efe8ad58fa264db..bc088673009bfce4f9af14506d9f16382338a4f4 100644 (file)
@@ -203,6 +203,7 @@ static inline struct bch_dev_usage bch2_dev_usage_read(struct bch_dev *ca)
 }
 
 void bch2_dev_usage_init(struct bch_dev *);
+void bch2_dev_usage_to_text(struct printbuf *, struct bch_dev_usage *);
 
 static inline u64 bch2_dev_buckets_reserved(struct bch_dev *ca, enum bch_watermark watermark)
 {
index f3cb7115b530bb29dcd35453931a05753438f0fb..0aa0978929380f8647a0d892112195c269535984 100644 (file)
@@ -786,32 +786,7 @@ static void dev_alloc_debug_to_text(struct printbuf *out, struct bch_dev *ca)
        printbuf_tabstop_push(out, 16);
        printbuf_tabstop_push(out, 16);
 
-       prt_tab(out);
-       prt_str(out, "buckets");
-       prt_tab_rjust(out);
-       prt_str(out, "sectors");
-       prt_tab_rjust(out);
-       prt_str(out, "fragmented");
-       prt_tab_rjust(out);
-       prt_newline(out);
-
-       for (i = 0; i < BCH_DATA_NR; i++) {
-               prt_str(out, bch2_data_types[i]);
-               prt_tab(out);
-               prt_u64(out, stats.d[i].buckets);
-               prt_tab_rjust(out);
-               prt_u64(out, stats.d[i].sectors);
-               prt_tab_rjust(out);
-               prt_u64(out, stats.d[i].fragmented);
-               prt_tab_rjust(out);
-               prt_newline(out);
-       }
-
-       prt_str(out, "ec");
-       prt_tab(out);
-       prt_u64(out, stats.buckets_ec);
-       prt_tab_rjust(out);
-       prt_newline(out);
+       bch2_dev_usage_to_text(out, &stats);
 
        prt_newline(out);