block: move blk_print_req_error to blk-mq.c
authorChristoph Hellwig <hch@lst.de>
Wed, 17 Nov 2021 06:14:03 +0000 (07:14 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 29 Nov 2021 13:35:21 +0000 (06:35 -0700)
This function is only used by the request completion path.  Factor out
a blk_status_to_str to keep blk_errors private in blk-core.c.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20211117061404.331732-11-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c
block/blk-mq.c
block/blk.h

index ae9bea1..8e14438 100644 (file)
@@ -199,22 +199,13 @@ int blk_status_to_errno(blk_status_t status)
 }
 EXPORT_SYMBOL_GPL(blk_status_to_errno);
 
-void blk_print_req_error(struct request *req, blk_status_t status)
+const char *blk_status_to_str(blk_status_t status)
 {
        int idx = (__force int)status;
 
        if (WARN_ON_ONCE(idx >= ARRAY_SIZE(blk_errors)))
-               return;
-
-       printk_ratelimited(KERN_ERR
-               "%s error, dev %s, sector %llu op 0x%x:(%s) flags 0x%x "
-               "phys_seg %u prio class %u\n",
-               blk_errors[idx].name,
-               req->rq_disk ? req->rq_disk->disk_name : "?",
-               blk_rq_pos(req), req_op(req), blk_op_str(req_op(req)),
-               req->cmd_flags & ~REQ_OP_MASK,
-               req->nr_phys_segments,
-               IOPRIO_PRIO_CLASS(req->ioprio));
+               return "<null>";
+       return blk_errors[idx].name;
 }
 
 /**
index 2a4eff6..00df1eb 100644 (file)
@@ -717,6 +717,19 @@ static void blk_account_io_completion(struct request *req, unsigned int bytes)
        }
 }
 
+static void blk_print_req_error(struct request *req, blk_status_t status)
+{
+       printk_ratelimited(KERN_ERR
+               "%s error, dev %s, sector %llu op 0x%x:(%s) flags 0x%x "
+               "phys_seg %u prio class %u\n",
+               blk_status_to_str(status),
+               req->rq_disk ? req->rq_disk->disk_name : "?",
+               blk_rq_pos(req), req_op(req), blk_op_str(req_op(req)),
+               req->cmd_flags & ~REQ_OP_MASK,
+               req->nr_phys_segments,
+               IOPRIO_PRIO_CLASS(req->ioprio));
+}
+
 /**
  * blk_update_request - Complete multiple bytes without completing the request
  * @req:      the request being processed
index 50aae8c..31ac754 100644 (file)
@@ -250,7 +250,7 @@ static inline void blk_integrity_del(struct gendisk *disk)
 
 unsigned long blk_rq_timeout(unsigned long timeout);
 void blk_add_timer(struct request *req);
-void blk_print_req_error(struct request *req, blk_status_t status);
+const char *blk_status_to_str(blk_status_t status);
 
 bool blk_attempt_plug_merge(struct request_queue *q, struct bio *bio,
                unsigned int nr_segs, bool *same_queue_rq);