Re: [PATCH v2 6/8] blk-mq: Rework blk_mq_realloc_hw_ctxs()

From: Sagi Grimberg
Date: Thu Oct 06 2016 - 06:11:41 EST




On 06/10/16 11:25, Alexander Gordeev wrote:
On Thu, Oct 06, 2016 at 12:47:26AM +0300, Sagi Grimberg wrote:

@@ -1908,33 +1909,36 @@ static void blk_mq_realloc_hw_ctxs(struct blk_mq_tag_set *set,
if (node == NUMA_NO_NODE)
node = set->numa_node;

- hctxs[i] = kzalloc_node(sizeof(struct blk_mq_hw_ctx),
- GFP_KERNEL, node);
- if (!hctxs[i])
+ hctx = kzalloc_node(sizeof(*hctx), GFP_KERNEL, node);
+ if (!hctx)
break;

- if (blk_mq_init_hctx(q, set, hctxs[i], i, node)) {
- kfree(hctxs[i]);
- hctxs[i] = NULL;
+ if (blk_mq_init_hctx(q, set, hctx, i, node)) {
+ kfree(hctx);
break;
}
- blk_mq_hctx_kobj_init(hctxs[i]);
+
+ blk_mq_hctx_kobj_init(hctx);
+ hctxs[i] = hctx;
}
for (j = i; j < q->nr_hw_queues; j++) {
- struct blk_mq_hw_ctx *hctx = hctxs[j];
+ hctx = hctxs[i];

Didn't you mean hctx[j]?

Surely, I did.
Thanks!

Maybe it would be cleaner to do:

while (--i >= 0) {
hctx = hctxs[i];
...
}