block: make request_to_qc_t public
authorSagi Grimberg <sagi@grimberg.me>
Fri, 14 Dec 2018 19:06:06 +0000 (11:06 -0800)
committerChristoph Hellwig <hch@lst.de>
Tue, 18 Dec 2018 16:50:47 +0000 (17:50 +0100)
block consumers will need it for polling requests that
are sent with blk_execute_rq_nowait. Also, get rid of
blk_tag_to_qc_t and open-code it instead.

Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
block/blk-mq.c
include/linux/blk-mq.h
include/linux/blk_types.h

index 2de972857496303438bc4a5eaf8a417ac93f562f..3ba37b9e15e9ae7d7921de1ac9ead5cee707c21a 100644 (file)
@@ -1749,14 +1749,6 @@ static void blk_mq_bio_to_request(struct request *rq, struct bio *bio)
        blk_account_io_start(rq, true);
 }
 
-static blk_qc_t request_to_qc_t(struct blk_mq_hw_ctx *hctx, struct request *rq)
-{
-       if (rq->tag != -1)
-               return blk_tag_to_qc_t(rq->tag, hctx->queue_num, false);
-
-       return blk_tag_to_qc_t(rq->internal_tag, hctx->queue_num, true);
-}
-
 static blk_status_t __blk_mq_issue_directly(struct blk_mq_hw_ctx *hctx,
                                            struct request *rq,
                                            blk_qc_t *cookie, bool last)
index d3c0a0d2680b98ee61547102b4dd038a4671165d..0e030f5f76b6635929ff4368f7cfa877abf08176 100644 (file)
@@ -357,4 +357,14 @@ static inline void *blk_mq_rq_to_pdu(struct request *rq)
        for ((i) = 0; (i) < (hctx)->nr_ctx &&                           \
             ({ ctx = (hctx)->ctxs[(i)]; 1; }); (i)++)
 
+static inline blk_qc_t request_to_qc_t(struct blk_mq_hw_ctx *hctx,
+               struct request *rq)
+{
+       if (rq->tag != -1)
+               return rq->tag | (hctx->queue_num << BLK_QC_T_SHIFT);
+
+       return rq->internal_tag | (hctx->queue_num << BLK_QC_T_SHIFT) |
+                       BLK_QC_T_INTERNAL;
+}
+
 #endif
index fc99474ac9688fe03e26e870bb25eb8c2c186dbc..5c7e7f859a2493f58ac65a6f10aee7e611b01458 100644 (file)
@@ -425,17 +425,6 @@ static inline bool blk_qc_t_valid(blk_qc_t cookie)
        return cookie != BLK_QC_T_NONE;
 }
 
-static inline blk_qc_t blk_tag_to_qc_t(unsigned int tag, unsigned int queue_num,
-                                      bool internal)
-{
-       blk_qc_t ret = tag | (queue_num << BLK_QC_T_SHIFT);
-
-       if (internal)
-               ret |= BLK_QC_T_INTERNAL;
-
-       return ret;
-}
-
 static inline unsigned int blk_qc_t_to_queue_num(blk_qc_t cookie)
 {
        return (cookie & ~BLK_QC_T_INTERNAL) >> BLK_QC_T_SHIFT;