blk-mq: Export tagset iter function
Its useful to iterate on all the active tags in cases where we will need to fail all the queues IO. Signed-off-by: Sagi Grimberg <sagig@mellanox.com> [hch: carefully check for valid tagsets] Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
37e58237a1
commit
e0489487ec
|
@ -474,6 +474,18 @@ void blk_mq_all_tag_busy_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(blk_mq_all_tag_busy_iter);
|
EXPORT_SYMBOL(blk_mq_all_tag_busy_iter);
|
||||||
|
|
||||||
|
void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset,
|
||||||
|
busy_tag_iter_fn *fn, void *priv)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < tagset->nr_hw_queues; i++) {
|
||||||
|
if (tagset->tags && tagset->tags[i])
|
||||||
|
blk_mq_all_tag_busy_iter(tagset->tags[i], fn, priv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(blk_mq_tagset_busy_iter);
|
||||||
|
|
||||||
void blk_mq_queue_tag_busy_iter(struct request_queue *q, busy_iter_fn *fn,
|
void blk_mq_queue_tag_busy_iter(struct request_queue *q, busy_iter_fn *fn,
|
||||||
void *priv)
|
void *priv)
|
||||||
{
|
{
|
||||||
|
|
|
@ -240,6 +240,8 @@ void blk_mq_run_hw_queues(struct request_queue *q, bool async);
|
||||||
void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs);
|
void blk_mq_delay_queue(struct blk_mq_hw_ctx *hctx, unsigned long msecs);
|
||||||
void blk_mq_all_tag_busy_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn,
|
void blk_mq_all_tag_busy_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn,
|
||||||
void *priv);
|
void *priv);
|
||||||
|
void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset,
|
||||||
|
busy_tag_iter_fn *fn, void *priv);
|
||||||
void blk_mq_freeze_queue(struct request_queue *q);
|
void blk_mq_freeze_queue(struct request_queue *q);
|
||||||
void blk_mq_unfreeze_queue(struct request_queue *q);
|
void blk_mq_unfreeze_queue(struct request_queue *q);
|
||||||
void blk_mq_freeze_queue_start(struct request_queue *q);
|
void blk_mq_freeze_queue_start(struct request_queue *q);
|
||||||
|
|
Loading…
Reference in New Issue