bcachefs: Add bch2_blk_status_to_str()
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 21 Jul 2020 17:34:22 +0000 (13:34 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:43 +0000 (17:08 -0400)
We define our own BLK_STS_REMOVED, so we need our own to_str helper too.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_io.c
fs/bcachefs/ec.c
fs/bcachefs/io.c
fs/bcachefs/io.h
fs/bcachefs/journal_io.c
fs/bcachefs/super-io.c

index a7d150811f7a1ec14f3d42988c40f4c6ae7fb876..c8870a15a44f73d2a55fee10be95715a901e75ab 100644 (file)
@@ -1149,7 +1149,7 @@ static void btree_node_read_work(struct work_struct *work)
                }
 start:
                bch2_dev_io_err_on(bio->bi_status, ca, "btree read: %s",
-                                  blk_status_to_str(bio->bi_status));
+                                  bch2_blk_status_to_str(bio->bi_status));
                if (rb->have_ioref)
                        percpu_ref_put(&ca->io_ref);
                rb->have_ioref = false;
@@ -1435,7 +1435,7 @@ static void btree_node_write_endio(struct bio *bio)
                bch2_latency_acct(ca, wbio->submit_time, WRITE);
 
        if (bch2_dev_io_err_on(bio->bi_status, ca, "btree write: %s",
-                              blk_status_to_str(bio->bi_status)) ||
+                              bch2_blk_status_to_str(bio->bi_status)) ||
            bch2_meta_write_fault("btree")) {
                spin_lock_irqsave(&c->btree_write_error_lock, flags);
                bch2_dev_list_add_dev(&orig->failed, wbio->dev);
index 54a95edc9901547fa18168d7ddf12d695ba55a16..8c04e7ced88b1afd0d171f592ef4c0a8ddee7b8d 100644 (file)
@@ -328,7 +328,7 @@ static void ec_block_endio(struct bio *bio)
 
        if (bch2_dev_io_err_on(bio->bi_status, ca, "erasure coding %s: %s",
                               bio_data_dir(bio) ? "write" : "read",
-                              blk_status_to_str(bio->bi_status)))
+                              bch2_blk_status_to_str(bio->bi_status)))
                clear_bit(ec_bio->idx, ec_bio->buf->valid);
 
        bio_put(&ec_bio->bio);
index ae2688d3aee60f4e24695cd5bc2793ed0a2f4313..7e57ca2e1071a7bc438a09d79c5a6338eda60aea 100644 (file)
 #include <linux/random.h>
 #include <linux/sched/mm.h>
 
+const char *bch2_blk_status_to_str(blk_status_t status)
+{
+       if (status == BLK_STS_REMOVED)
+               return "device removed";
+       return blk_status_to_str(status);
+}
+
 #ifndef CONFIG_BCACHEFS_NO_LATENCY_ACCT
 
 static bool bch2_target_congested(struct bch_fs *c, u16 target)
@@ -626,7 +633,7 @@ static void bch2_write_endio(struct bio *bio)
        struct bch_dev *ca              = bch_dev_bkey_exists(c, wbio->dev);
 
        if (bch2_dev_io_err_on(bio->bi_status, ca, "data write: %s",
-                              blk_status_to_str(bio->bi_status)))
+                              bch2_blk_status_to_str(bio->bi_status)))
                set_bit(wbio->dev, op->failed.d);
 
        if (wbio->have_ioref) {
@@ -1921,7 +1928,7 @@ static void bch2_read_endio(struct bio *bio)
                rbio->bio.bi_end_io = rbio->end_io;
 
        if (bch2_dev_io_err_on(bio->bi_status, ca, "data read; %s",
-                              blk_status_to_str(bio->bi_status))) {
+                              bch2_blk_status_to_str(bio->bi_status))) {
                bch2_rbio_error(rbio, READ_RETRY_AVOID, bio->bi_status);
                return;
        }
index b8fbfef291766813a9fe5b591e1299b3360d54e6..be4aa3875360d0fe0764521e09499e6a0fe36682 100644 (file)
@@ -26,6 +26,8 @@ void bch2_submit_wbio_replicas(struct bch_write_bio *, struct bch_fs *,
 
 #define BLK_STS_REMOVED                ((__force blk_status_t)128)
 
+const char *bch2_blk_status_to_str(blk_status_t);
+
 enum bch_write_flags {
        BCH_WRITE_ALLOC_NOWAIT          = (1 << 0),
        BCH_WRITE_CACHED                = (1 << 1),
index a4c2b80e8aa5a33e021d9befa7daf0a7e4c9391f..1e505f294095b02d4bd1b27a5100e6a4fe584dd9 100644 (file)
@@ -6,6 +6,7 @@
 #include "buckets.h"
 #include "checksum.h"
 #include "error.h"
+#include "io.h"
 #include "journal.h"
 #include "journal_io.h"
 #include "journal_reclaim.h"
@@ -961,7 +962,7 @@ static void journal_write_endio(struct bio *bio)
        struct journal *j = &ca->fs->journal;
 
        if (bch2_dev_io_err_on(bio->bi_status, ca, "journal write: %s",
-                              blk_status_to_str(bio->bi_status)) ||
+                              bch2_blk_status_to_str(bio->bi_status)) ||
            bch2_meta_write_fault("journal")) {
                struct journal_buf *w = journal_prev_buf(j);
                unsigned long flags;
index 0913ffd237768991055084f1906d46e04ddf31d3..5406315340e14b355dde81da9e248db53a7c8415 100644 (file)
@@ -641,7 +641,7 @@ static void write_super_endio(struct bio *bio)
        /* XXX: return errors directly */
 
        if (bch2_dev_io_err_on(bio->bi_status, ca, "superblock write: %s",
-                              blk_status_to_str(bio->bi_status)))
+                              bch2_blk_status_to_str(bio->bi_status)))
                ca->sb_write_error = 1;
 
        closure_put(&ca->fs->sb_write);