bdev/nvme: Alloc bdev name array dynamically for attach_controller RPC
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I9c1822421563210f6a656553355e29e75c8b0c21 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17650 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
d33d418742
commit
f0a2538c04
@ -265,7 +265,7 @@ struct rpc_bdev_nvme_attach_controller_ctx {
|
|||||||
struct rpc_bdev_nvme_attach_controller req;
|
struct rpc_bdev_nvme_attach_controller req;
|
||||||
uint32_t count;
|
uint32_t count;
|
||||||
size_t bdev_count;
|
size_t bdev_count;
|
||||||
const char *names[NVME_MAX_BDEVS_PER_RPC];
|
const char **names;
|
||||||
struct spdk_jsonrpc_request *request;
|
struct spdk_jsonrpc_request *request;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -273,6 +273,7 @@ static void
|
|||||||
free_rpc_bdev_nvme_attach_controller_ctx(struct rpc_bdev_nvme_attach_controller_ctx *ctx)
|
free_rpc_bdev_nvme_attach_controller_ctx(struct rpc_bdev_nvme_attach_controller_ctx *ctx)
|
||||||
{
|
{
|
||||||
free_rpc_bdev_nvme_attach_controller(&ctx->req);
|
free_rpc_bdev_nvme_attach_controller(&ctx->req);
|
||||||
|
free(ctx->names);
|
||||||
free(ctx);
|
free(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,6 +346,12 @@ rpc_bdev_nvme_attach_controller(struct spdk_jsonrpc_request *request,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctx->names = calloc(NVME_MAX_BDEVS_PER_RPC, sizeof(char *));
|
||||||
|
if (ctx->names == NULL) {
|
||||||
|
spdk_jsonrpc_send_error_response(request, -ENOMEM, spdk_strerror(ENOMEM));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
/* Parse trstring */
|
/* Parse trstring */
|
||||||
rc = spdk_nvme_transport_id_populate_trstring(&trid, ctx->req.trtype);
|
rc = spdk_nvme_transport_id_populate_trstring(&trid, ctx->req.trtype);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user