Commit e85f1f11 authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Tomasz Zawadzki
Browse files

rpc: use spdk_json_decode_uuid() to decode UUIDs



Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I99e5d44d2cea4d50219b44e4595379a3a17bd11f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20475


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
parent 3e449a54
Loading
Loading
Loading
Loading
+1 −16
Original line number Diff line number Diff line
@@ -144,21 +144,6 @@ decode_ns_eui64(const struct spdk_json_val *val, void *out)
	return rc;
}

static int
decode_ns_uuid(const struct spdk_json_val *val, void *out)
{
	char *str = NULL;
	int rc;

	rc = spdk_json_decode_string(val, &str);
	if (rc == 0) {
		rc = spdk_uuid_parse(out, str);
	}

	free(str);
	return rc;
}

struct rpc_get_subsystem {
	char *nqn;
	char *tgt_name;
@@ -1358,7 +1343,7 @@ static const struct spdk_json_object_decoder rpc_ns_params_decoders[] = {
	{"ptpl_file", offsetof(struct spdk_nvmf_ns_params, ptpl_file), spdk_json_decode_string, true},
	{"nguid", offsetof(struct spdk_nvmf_ns_params, nguid), decode_ns_nguid, true},
	{"eui64", offsetof(struct spdk_nvmf_ns_params, eui64), decode_ns_eui64, true},
	{"uuid", offsetof(struct spdk_nvmf_ns_params, uuid), decode_ns_uuid, true},
	{"uuid", offsetof(struct spdk_nvmf_ns_params, uuid), spdk_json_decode_uuid, true},
	{"anagrpid", offsetof(struct spdk_nvmf_ns_params, anagrpid), spdk_json_decode_uint32, true},
};

+1 −5
Original line number Diff line number Diff line
@@ -774,11 +774,7 @@ create_bdev_daos(struct spdk_bdev **bdev,
	daos->disk.write_cache = 0;
	daos->disk.blocklen = block_size;
	daos->disk.blockcnt = num_blocks;

	if (uuid) {
	daos->disk.uuid = *uuid;
	}

	daos->disk.ctxt = daos;
	daos->disk.fn_table = &daos_fn_table;
	daos->disk.module = &daos_if;
+3 −15
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@

struct rpc_construct_daos {
	char *name;
	char *uuid;
	struct spdk_uuid uuid;
	char *pool;
	char *cont;
	char *oclass;
@@ -25,7 +25,6 @@ static void
free_rpc_construct_daos(struct rpc_construct_daos *r)
{
	free(r->name);
	free(r->uuid);
	free(r->pool);
	free(r->cont);
	free(r->oclass);
@@ -33,7 +32,7 @@ free_rpc_construct_daos(struct rpc_construct_daos *r)

static const struct spdk_json_object_decoder rpc_construct_daos_decoders[] = {
	{"name", offsetof(struct rpc_construct_daos, name), spdk_json_decode_string},
	{"uuid", offsetof(struct rpc_construct_daos, uuid), spdk_json_decode_string, true},
	{"uuid", offsetof(struct rpc_construct_daos, uuid), spdk_json_decode_uuid, true},
	{"pool", offsetof(struct rpc_construct_daos, pool), spdk_json_decode_string},
	{"cont", offsetof(struct rpc_construct_daos, cont), spdk_json_decode_string},
	{"oclass", offsetof(struct rpc_construct_daos, oclass), spdk_json_decode_string, true},
@@ -47,8 +46,6 @@ rpc_bdev_daos_create(struct spdk_jsonrpc_request *request,
{
	struct rpc_construct_daos req = {NULL};
	struct spdk_json_write_ctx *w;
	struct spdk_uuid *uuid = NULL;
	struct spdk_uuid decoded_uuid;
	struct spdk_bdev *bdev;
	int rc = 0;

@@ -61,16 +58,7 @@ rpc_bdev_daos_create(struct spdk_jsonrpc_request *request,
		goto cleanup;
	}

	if (req.uuid) {
		if (spdk_uuid_parse(&decoded_uuid, req.uuid)) {
			spdk_jsonrpc_send_error_response(request, -EINVAL,
							 "Failed to parse bdev UUID");
			goto cleanup;
		}
		uuid = &decoded_uuid;
	}

	rc = create_bdev_daos(&bdev, req.name, uuid, req.pool, req.cont, req.oclass,
	rc = create_bdev_daos(&bdev, req.name, &req.uuid, req.pool, req.cont, req.oclass,
			      req.num_blocks, req.block_size);
	if (rc) {
		spdk_jsonrpc_send_error_response(request, rc, spdk_strerror(-rc));
+1 −4
Original line number Diff line number Diff line
@@ -633,10 +633,7 @@ vbdev_delay_insert_association(const char *bdev_name, const char *vbdev_name,
	assoc->p99_read_latency = p99_read_latency;
	assoc->avg_write_latency = avg_write_latency;
	assoc->p99_write_latency = p99_write_latency;

	if (uuid) {
	spdk_uuid_copy(&assoc->uuid, uuid);
	}

	TAILQ_INSERT_TAIL(&g_bdev_associations, assoc, link);

+3 −15
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ SPDK_RPC_REGISTER("bdev_delay_update_latency", rpc_bdev_delay_update_latency, SP
struct rpc_construct_delay {
	char *base_bdev_name;
	char *name;
	char *uuid;
	struct spdk_uuid uuid;
	uint64_t avg_read_latency;
	uint64_t p99_read_latency;
	uint64_t avg_write_latency;
@@ -96,13 +96,12 @@ free_rpc_construct_delay(struct rpc_construct_delay *r)
{
	free(r->base_bdev_name);
	free(r->name);
	free(r->uuid);
}

static const struct spdk_json_object_decoder rpc_construct_delay_decoders[] = {
	{"base_bdev_name", offsetof(struct rpc_construct_delay, base_bdev_name), spdk_json_decode_string},
	{"name", offsetof(struct rpc_construct_delay, name), spdk_json_decode_string},
	{"uuid", offsetof(struct rpc_construct_delay, uuid), spdk_json_decode_string, true},
	{"uuid", offsetof(struct rpc_construct_delay, uuid), spdk_json_decode_uuid, true},
	{"avg_read_latency", offsetof(struct rpc_construct_delay, avg_read_latency), spdk_json_decode_uint64},
	{"p99_read_latency", offsetof(struct rpc_construct_delay, p99_read_latency), spdk_json_decode_uint64},
	{"avg_write_latency", offsetof(struct rpc_construct_delay, avg_write_latency), spdk_json_decode_uint64},
@@ -115,8 +114,6 @@ rpc_bdev_delay_create(struct spdk_jsonrpc_request *request,
{
	struct rpc_construct_delay req = {NULL};
	struct spdk_json_write_ctx *w;
	struct spdk_uuid *uuid = NULL;
	struct spdk_uuid decoded_uuid;
	int rc;

	if (spdk_json_decode_object(params, rpc_construct_delay_decoders,
@@ -128,16 +125,7 @@ rpc_bdev_delay_create(struct spdk_jsonrpc_request *request,
		goto cleanup;
	}

	if (req.uuid) {
		if (spdk_uuid_parse(&decoded_uuid, req.uuid)) {
			spdk_jsonrpc_send_error_response(request, -EINVAL,
							 "Failed to parse bdev UUID");
			goto cleanup;
		}
		uuid = &decoded_uuid;
	}

	rc = create_delay_disk(req.base_bdev_name, req.name, uuid, req.avg_read_latency,
	rc = create_delay_disk(req.base_bdev_name, req.name, &req.uuid, req.avg_read_latency,
			       req.p99_read_latency,
			       req.avg_write_latency, req.p99_write_latency);
	if (rc != 0) {
Loading