diff options
Diffstat (limited to 'include/linux/blk-mq.h')
-rw-r--r-- | include/linux/blk-mq.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index c9be1589415a..15f7034aa377 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h | |||
@@ -167,6 +167,23 @@ struct request *blk_mq_alloc_request(struct request_queue *q, int rw, | |||
167 | gfp_t gfp, bool reserved); | 167 | gfp_t gfp, bool reserved); |
168 | struct request *blk_mq_tag_to_rq(struct blk_mq_tags *tags, unsigned int tag); | 168 | struct request *blk_mq_tag_to_rq(struct blk_mq_tags *tags, unsigned int tag); |
169 | 169 | ||
170 | enum { | ||
171 | BLK_MQ_UNIQUE_TAG_BITS = 16, | ||
172 | BLK_MQ_UNIQUE_TAG_MASK = (1 << BLK_MQ_UNIQUE_TAG_BITS) - 1, | ||
173 | }; | ||
174 | |||
175 | u32 blk_mq_unique_tag(struct request *rq); | ||
176 | |||
177 | static inline u16 blk_mq_unique_tag_to_hwq(u32 unique_tag) | ||
178 | { | ||
179 | return unique_tag >> BLK_MQ_UNIQUE_TAG_BITS; | ||
180 | } | ||
181 | |||
182 | static inline u16 blk_mq_unique_tag_to_tag(u32 unique_tag) | ||
183 | { | ||
184 | return unique_tag & BLK_MQ_UNIQUE_TAG_MASK; | ||
185 | } | ||
186 | |||
170 | struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *, const int ctx_index); | 187 | struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *, const int ctx_index); |
171 | struct blk_mq_hw_ctx *blk_mq_alloc_single_hw_queue(struct blk_mq_tag_set *, unsigned int, int); | 188 | struct blk_mq_hw_ctx *blk_mq_alloc_single_hw_queue(struct blk_mq_tag_set *, unsigned int, int); |
172 | 189 | ||