Loading block/blk-mq.c +3 −5 Original line number Diff line number Diff line Loading @@ -1324,7 +1324,7 @@ struct request *blk_mq_dequeue_from_ctx(struct blk_mq_hw_ctx *hctx, return data.rq; } static bool __blk_mq_get_driver_tag(struct request *rq) static bool __blk_mq_alloc_driver_tag(struct request *rq) { struct sbitmap_queue *bt = &rq->mq_hctx->tags->bitmap_tags; unsigned int tag_offset = rq->mq_hctx->tags->nr_reserved_tags; Loading @@ -1348,11 +1348,9 @@ static bool __blk_mq_get_driver_tag(struct request *rq) return true; } bool blk_mq_get_driver_tag(struct request *rq) bool __blk_mq_get_driver_tag(struct blk_mq_hw_ctx *hctx, struct request *rq) { struct blk_mq_hw_ctx *hctx = rq->mq_hctx; if (rq->tag == BLK_MQ_NO_TAG && !__blk_mq_get_driver_tag(rq)) if (rq->tag == BLK_MQ_NO_TAG && !__blk_mq_alloc_driver_tag(rq)) return false; if ((hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED) && Loading block/blk-mq.h +14 −1 Original line number Diff line number Diff line Loading @@ -258,7 +258,20 @@ static inline void blk_mq_put_driver_tag(struct request *rq) __blk_mq_put_driver_tag(rq->mq_hctx, rq); } bool blk_mq_get_driver_tag(struct request *rq); bool __blk_mq_get_driver_tag(struct blk_mq_hw_ctx *hctx, struct request *rq); static inline bool blk_mq_get_driver_tag(struct request *rq) { struct blk_mq_hw_ctx *hctx = rq->mq_hctx; if (rq->tag != BLK_MQ_NO_TAG && !(hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED)) { hctx->tags->rqs[rq->tag] = rq; return true; } return __blk_mq_get_driver_tag(hctx, rq); } static inline void blk_mq_clear_mq_map(struct blk_mq_queue_map *qmap) { Loading Loading
block/blk-mq.c +3 −5 Original line number Diff line number Diff line Loading @@ -1324,7 +1324,7 @@ struct request *blk_mq_dequeue_from_ctx(struct blk_mq_hw_ctx *hctx, return data.rq; } static bool __blk_mq_get_driver_tag(struct request *rq) static bool __blk_mq_alloc_driver_tag(struct request *rq) { struct sbitmap_queue *bt = &rq->mq_hctx->tags->bitmap_tags; unsigned int tag_offset = rq->mq_hctx->tags->nr_reserved_tags; Loading @@ -1348,11 +1348,9 @@ static bool __blk_mq_get_driver_tag(struct request *rq) return true; } bool blk_mq_get_driver_tag(struct request *rq) bool __blk_mq_get_driver_tag(struct blk_mq_hw_ctx *hctx, struct request *rq) { struct blk_mq_hw_ctx *hctx = rq->mq_hctx; if (rq->tag == BLK_MQ_NO_TAG && !__blk_mq_get_driver_tag(rq)) if (rq->tag == BLK_MQ_NO_TAG && !__blk_mq_alloc_driver_tag(rq)) return false; if ((hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED) && Loading
block/blk-mq.h +14 −1 Original line number Diff line number Diff line Loading @@ -258,7 +258,20 @@ static inline void blk_mq_put_driver_tag(struct request *rq) __blk_mq_put_driver_tag(rq->mq_hctx, rq); } bool blk_mq_get_driver_tag(struct request *rq); bool __blk_mq_get_driver_tag(struct blk_mq_hw_ctx *hctx, struct request *rq); static inline bool blk_mq_get_driver_tag(struct request *rq) { struct blk_mq_hw_ctx *hctx = rq->mq_hctx; if (rq->tag != BLK_MQ_NO_TAG && !(hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED)) { hctx->tags->rqs[rq->tag] = rq; return true; } return __blk_mq_get_driver_tag(hctx, rq); } static inline void blk_mq_clear_mq_map(struct blk_mq_queue_map *qmap) { Loading