nvmf_tgt: decouple RPC ns list from subsystem internals

MAX_VIRTUAL_NAMESPACE will be removed from the public API, so use an
RPC-specific array size to remove its use in nvmf_tgt.

Also increase the number of namespaces accepted by the RPC call; this
does not actually allow more than MAX_VIRTUAL_NAMESPACE right now, since
the namespaces are still stored in a fixed-size array inside the
subsystem, but at least the RPC side is not limited by that size now.
In the future, we will make the subsystem namespace list dynamically
sized.

Change-Id: I99c77ddeae4c13ddde34e2b945c663dbafdb68d9
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/363310
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Daniel Verkamp 2017-05-31 17:26:16 -07:00 committed by Ben Walker
parent 7b2a6b05d0
commit 239ba69c78

View File

@ -161,6 +161,7 @@ SPDK_RPC_REGISTER("get_nvmf_subsystems", spdk_rpc_get_nvmf_subsystems)
#define RPC_MAX_LISTEN_ADDRESSES 255
#define RPC_MAX_HOSTS 255
#define RPC_MAX_NAMESPACES 255
struct rpc_listen_addresses {
size_t num_listen_address;
@ -213,7 +214,7 @@ decode_rpc_hosts(const struct spdk_json_val *val, void *out)
struct rpc_dev_names {
size_t num_names;
char *names[MAX_VIRTUAL_NAMESPACE];
char *names[RPC_MAX_NAMESPACES];
};
static int
@ -222,7 +223,7 @@ decode_rpc_dev_names(const struct spdk_json_val *val, void *out)
struct rpc_dev_names *dev_names = out;
return spdk_json_decode_array(val, spdk_json_decode_string, dev_names->names,
MAX_VIRTUAL_NAMESPACE,
SPDK_COUNTOF(dev_names->names),
&dev_names->num_names, sizeof(char *));
}