Commit f0a2538c authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Konrad Sztyber
Browse files

bdev/nvme: Alloc bdev name array dynamically for attach_controller RPC



Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I9c1822421563210f6a656553355e29e75c8b0c21
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17650


Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent d33d4187
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -265,7 +265,7 @@ struct rpc_bdev_nvme_attach_controller_ctx {
	struct rpc_bdev_nvme_attach_controller req;
	uint32_t count;
	size_t bdev_count;
	const char *names[NVME_MAX_BDEVS_PER_RPC];
	const char **names;
	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->req);
	free(ctx->names);
	free(ctx);
}

@@ -345,6 +346,12 @@ rpc_bdev_nvme_attach_controller(struct spdk_jsonrpc_request *request,
		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 */
	rc = spdk_nvme_transport_id_populate_trstring(&trid, ctx->req.trtype);
	if (rc < 0) {