bcachefs: fix error message in device remove path
authorKent Overstreet <kent.overstreet@gmail.com>
Mon, 21 Jan 2019 02:16:25 +0000 (21:16 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:14 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/super.c
fs/bcachefs/util.c

index 198f78dbb6d9b70a8051e0d7258c31af8b7a904c..55069f40d04b5326ae8cf67121b37f9f569ea556 100644 (file)
@@ -1258,8 +1258,8 @@ int bch2_dev_remove(struct bch_fs *c, struct bch_dev *ca, int flags)
        if (data) {
                char data_has_str[100];
 
-               bch2_string_opt_to_text(&PBUF(data_has_str),
-                                       bch2_data_types, data);
+               bch2_flags_to_text(&PBUF(data_has_str),
+                                  bch2_data_types, data);
                bch_err(ca, "Remove failed, still has data (%s)", data_has_str);
                ret = -EBUSY;
                goto err;
index d998e51dbc308d5aef2f1f7890e5258b9eebd68d..9f3eafb3e0d4b251a28ecb08acd751d84ed846a7 100644 (file)
@@ -134,6 +134,7 @@ void bch2_flags_to_text(struct printbuf *out,
                        const char * const list[], u64 flags)
 {
        unsigned bit, nr = 0;
+       bool first = true;
 
        if (out->pos != out->end)
                *out->pos = '\0';
@@ -142,7 +143,10 @@ void bch2_flags_to_text(struct printbuf *out,
                nr++;
 
        while (flags && (bit = __ffs(flags)) < nr) {
-               pr_buf(out, "%s,", list[bit]);
+               pr_buf(out, "%s", list[bit]);
+               if (!first)
+                       pr_buf(out, ",");
+               first = false;
                flags ^= 1 << bit;
        }
 }