nvmf/fc: Use pointer stored in transport_poll_group and remove it from fc_poll_group

The pointer to nvmf_poll_group is set in nvmf_transport_poll_group_create()
after returning nvmf_fc_poll_group_create(). Hence holding it into
struct spdk_nvmf_fc_poll_group is duplicated and can be removed.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I7087c5cdb94b0b0c5f51b0b63b631c08266c90d0
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466842
Reviewed-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Shuhei Matsumoto 2019-09-02 13:58:26 +09:00 committed by Jim Harris
parent 99ea1d3612
commit 01df17d007
3 changed files with 2 additions and 11 deletions

View File

@ -513,7 +513,7 @@ spdk_nvmf_fc_poll_group_add_hwqp(struct spdk_nvmf_fc_hwqp *hwqp)
return; return;
} }
hwqp->thread = fgroup->poll_group->thread; hwqp->thread = fgroup->tp_poll_group.group->thread;
hwqp->fgroup = fgroup; hwqp->fgroup = fgroup;
fgroup->hwqp_count++; fgroup->hwqp_count++;
spdk_nvmf_fc_poller_api_func(hwqp, SPDK_NVMF_FC_POLLER_API_ADD_HWQP, NULL); spdk_nvmf_fc_poller_api_func(hwqp, SPDK_NVMF_FC_POLLER_API_ADD_HWQP, NULL);
@ -1992,7 +1992,6 @@ static struct spdk_nvmf_transport_poll_group *
nvmf_fc_poll_group_create(struct spdk_nvmf_transport *transport) nvmf_fc_poll_group_create(struct spdk_nvmf_transport *transport)
{ {
struct spdk_nvmf_fc_poll_group *fgroup; struct spdk_nvmf_fc_poll_group *fgroup;
struct spdk_io_channel *ch;
struct spdk_nvmf_fc_transport *fc_transport = struct spdk_nvmf_fc_transport *fc_transport =
SPDK_CONTAINEROF(transport, struct spdk_nvmf_fc_transport, transport); SPDK_CONTAINEROF(transport, struct spdk_nvmf_fc_transport, transport);
@ -2010,12 +2009,6 @@ nvmf_fc_poll_group_create(struct spdk_nvmf_transport *transport)
g_nvmf_fgroup_count++; g_nvmf_fgroup_count++;
pthread_mutex_unlock(&fc_transport->lock); pthread_mutex_unlock(&fc_transport->lock);
ch = spdk_get_io_channel(g_nvmf_fc_transport->transport.tgt);
if (ch) {
fgroup->poll_group = spdk_io_channel_get_ctx(ch);
spdk_put_io_channel(ch);
}
return &fgroup->tp_poll_group; return &fgroup->tp_poll_group;
} }

View File

@ -264,7 +264,6 @@ struct spdk_nvmf_fc_xchg {
*/ */
struct spdk_nvmf_fc_poll_group { struct spdk_nvmf_fc_poll_group {
struct spdk_nvmf_transport_poll_group tp_poll_group; struct spdk_nvmf_transport_poll_group tp_poll_group;
struct spdk_nvmf_poll_group *poll_group;
struct spdk_nvmf_tgt *nvmf_tgt; struct spdk_nvmf_tgt *nvmf_tgt;
struct spdk_nvmf_fc_transport *fc_transport; struct spdk_nvmf_fc_transport *fc_transport;
uint32_t hwqp_count; /* number of hwqp's assigned to this pg */ uint32_t hwqp_count; /* number of hwqp's assigned to this pg */

View File

@ -708,8 +708,7 @@ ls_tests_init(void)
TAILQ_INIT(&g_poll_group[i].tgroups); TAILQ_INIT(&g_poll_group[i].tgroups);
TAILQ_INIT(&g_poll_group[i].qpairs); TAILQ_INIT(&g_poll_group[i].qpairs);
g_fgroup[i].tp_poll_group.transport = &g_nvmf_transport; g_fgroup[i].tp_poll_group.transport = &g_nvmf_transport;
g_fgroup[i].poll_group = &g_poll_group[i]; g_fgroup[i].tp_poll_group.group = &g_poll_group[i];
g_fgroup[i].nvmf_tgt = &g_nvmf_tgt;
hwqp->fgroup = &g_fgroup[i]; hwqp->fgroup = &g_fgroup[i];
} }