forked from luck/tmp_suning_uos_patched
[SCSI] zfcp: Warn about storage devices with broken PLOGI data
After opening a remote port zfcp checks if the WWPN returned in the PLOGI maches the WWPN of the port that should have been opened. On a mismatch zfcp assumes that the DID just changed, queries the FC nameserver and tries again. If the situation persists the erp will give up. With this strategy, if the remote port always returns the wrong PLOGI data, the remote port will not be opened. Introduce a warning, so that the system administrator knows why the remote port is not being opened and to have a pointer to investigate the problem on the storage system. Reviewed-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
934aeb587b
commit
10d00f78e6
@ -1475,9 +1475,16 @@ static void zfcp_fsf_open_port_handler(struct zfcp_fsf_req *req)
|
|||||||
plogi = (struct fsf_plogi *) req->qtcb->bottom.support.els;
|
plogi = (struct fsf_plogi *) req->qtcb->bottom.support.els;
|
||||||
if (req->qtcb->bottom.support.els1_length >=
|
if (req->qtcb->bottom.support.els1_length >=
|
||||||
FSF_PLOGI_MIN_LEN) {
|
FSF_PLOGI_MIN_LEN) {
|
||||||
if (plogi->serv_param.wwpn != port->wwpn)
|
if (plogi->serv_param.wwpn != port->wwpn) {
|
||||||
port->d_id = 0;
|
port->d_id = 0;
|
||||||
else {
|
dev_warn(&port->adapter->ccw_device->dev,
|
||||||
|
"A port opened with WWPN 0x%016Lx "
|
||||||
|
"returned data that identifies it as "
|
||||||
|
"WWPN 0x%016Lx\n",
|
||||||
|
(unsigned long long) port->wwpn,
|
||||||
|
(unsigned long long)
|
||||||
|
plogi->serv_param.wwpn);
|
||||||
|
} else {
|
||||||
port->wwnn = plogi->serv_param.wwnn;
|
port->wwnn = plogi->serv_param.wwnn;
|
||||||
zfcp_fc_plogi_evaluate(port, plogi);
|
zfcp_fc_plogi_evaluate(port, plogi);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user