> +static struct blk_mq_hw_ctx *
> +blk_mq_alloc_hctx(struct request_queue *q,
> + struct blk_mq_tag_set *set,
Nit: The second paramter would easily fit on the first line.
> + unsigned hctx_idx, int node)
> +{
> + struct blk_mq_hw_ctx *hctx;
> +
> + hctx = kzalloc_node(blk_mq_hw_ctx_size(set),
> + GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY,
> + node);
> + if (!hctx)
> + goto fail_alloc_hctx;
> +
> + if (!zalloc_cpumask_var_node(&hctx->cpumask,
> + GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY,
> + node))
Nit: I still think a local variable for the gfp_t would be very useful
here.
> + atomic_set(&hctx->nr_active, 0);
> + hctx->numa_node = node;
> if (node == NUMA_NO_NODE)
> - node = hctx->numa_node = set->numa_node;
> + hctx->numa_node = set->numa_node;
> + node = hctx->numa_node;
Why not:
if (node == NUMA_NO_NODE)
set->numa_node;
hctx->numa_node = node;
?
Otherwise looks fine:
Reviewed-by: Christoph Hellwig <[email protected]>