[SCSI] fcoe, libfc: initialize EM anchors list and then update npiv EMs
EM anchors list initialization for only master port was not enough to keep npiv working as described here:- https://lists.open-fcoe.org/pipermail/devel/2011-January/011063.html So this patch moves fc_exch_mgr_list_clone to update npiv ports EMs once EM anchors list initialized. Also some cleanup, no need to set lport = NULL as that always get initialized later. Signed-off-by: Vasu Dev <vasu.dev@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
@@ -2175,6 +2175,7 @@ err:
|
||||
fc_exch_mgr_del(ema);
|
||||
return -ENOMEM;
|
||||
}
|
||||
EXPORT_SYMBOL(fc_exch_mgr_list_clone);
|
||||
|
||||
/**
|
||||
* fc_exch_mgr_alloc() - Allocate an exchange manager
|
||||
|
@@ -1590,6 +1590,7 @@ void fc_lport_enter_flogi(struct fc_lport *lport)
|
||||
*/
|
||||
int fc_lport_config(struct fc_lport *lport)
|
||||
{
|
||||
INIT_LIST_HEAD(&lport->ema_list);
|
||||
INIT_DELAYED_WORK(&lport->retry_work, fc_lport_timeout);
|
||||
mutex_init(&lport->lp_mutex);
|
||||
|
||||
|
@@ -37,9 +37,7 @@ struct fc_lport *libfc_vport_create(struct fc_vport *vport, int privsize)
|
||||
|
||||
vn_port = libfc_host_alloc(shost->hostt, privsize);
|
||||
if (!vn_port)
|
||||
goto err_out;
|
||||
if (fc_exch_mgr_list_clone(n_port, vn_port))
|
||||
goto err_put;
|
||||
return vn_port;
|
||||
|
||||
vn_port->vport = vport;
|
||||
vport->dd_data = vn_port;
|
||||
@@ -49,11 +47,6 @@ struct fc_lport *libfc_vport_create(struct fc_vport *vport, int privsize)
|
||||
mutex_unlock(&n_port->lp_mutex);
|
||||
|
||||
return vn_port;
|
||||
|
||||
err_put:
|
||||
scsi_host_put(vn_port->host);
|
||||
err_out:
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(libfc_vport_create);
|
||||
|
||||
|
Reference in New Issue
Block a user