|
@@ -298,12 +298,12 @@ void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset,
|
|
|
}
|
|
|
EXPORT_SYMBOL(blk_mq_tagset_busy_iter);
|
|
|
|
|
|
-int blk_mq_reinit_tagset(struct blk_mq_tag_set *set,
|
|
|
- int (reinit_request)(void *, struct request *))
|
|
|
+int blk_mq_tagset_iter(struct blk_mq_tag_set *set, void *data,
|
|
|
+ int (fn)(void *, struct request *))
|
|
|
{
|
|
|
int i, j, ret = 0;
|
|
|
|
|
|
- if (WARN_ON_ONCE(!reinit_request))
|
|
|
+ if (WARN_ON_ONCE(!fn))
|
|
|
goto out;
|
|
|
|
|
|
for (i = 0; i < set->nr_hw_queues; i++) {
|
|
@@ -316,8 +316,7 @@ int blk_mq_reinit_tagset(struct blk_mq_tag_set *set,
|
|
|
if (!tags->static_rqs[j])
|
|
|
continue;
|
|
|
|
|
|
- ret = reinit_request(set->driver_data,
|
|
|
- tags->static_rqs[j]);
|
|
|
+ ret = fn(data, tags->static_rqs[j]);
|
|
|
if (ret)
|
|
|
goto out;
|
|
|
}
|
|
@@ -326,6 +325,13 @@ int blk_mq_reinit_tagset(struct blk_mq_tag_set *set,
|
|
|
out:
|
|
|
return ret;
|
|
|
}
|
|
|
+EXPORT_SYMBOL_GPL(blk_mq_tagset_iter);
|
|
|
+
|
|
|
+int blk_mq_reinit_tagset(struct blk_mq_tag_set *set,
|
|
|
+ int (reinit_request)(void *, struct request *))
|
|
|
+{
|
|
|
+ return blk_mq_tagset_iter(set, set->driver_data, reinit_request);
|
|
|
+}
|
|
|
EXPORT_SYMBOL_GPL(blk_mq_reinit_tagset);
|
|
|
|
|
|
void blk_mq_queue_tag_busy_iter(struct request_queue *q, busy_iter_fn *fn,
|