aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi
diff options
context:
space:
mode:
authorSwen Schillig <swen@vnet.ibm.com>2008-10-01 12:42:23 +0200
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-10-03 12:11:55 -0500
commite4e9ba5d9313f362d2192fb7a2d35a3bfb714b1e (patch)
tree82e7319ec06da69956bb9a80b30b60cef79f2da7 /drivers/s390/scsi
parent[SCSI] zfcp: fix deadlock caused by shared work queue tasks (diff)
downloadlinux-dev-e4e9ba5d9313f362d2192fb7a2d35a3bfb714b1e.tar.xz
linux-dev-e4e9ba5d9313f362d2192fb7a2d35a3bfb714b1e.zip
[SCSI] zfcp: prevent fc_remote_port_delete calls for unregistered rport
In case of an adapter reopen all rports have to be deleted from the environment. This should only happen for already registered rports otherwise fc_remote_port_delete is called with a NULL pointer. Signed-off-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/s390/scsi')
-rw-r--r--drivers/s390/scsi/zfcp_erp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index f5ebeb7ca2be..8c117416d5ad 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -1236,6 +1236,8 @@ static void zfcp_erp_rports_del(struct zfcp_adapter *adapter)
{
struct zfcp_port *port;
list_for_each_entry(port, &adapter->port_list_head, list) {
+ if (!port->rport)
+ continue;
fc_remote_port_delete(port->rport);
port->rport = NULL;
}