diff options
| -rw-r--r-- | drivers/scsi/fnic/fnic_scsi.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c index fb8413aa005f..a876084ee12f 100644 --- a/drivers/scsi/fnic/fnic_scsi.c +++ b/drivers/scsi/fnic/fnic_scsi.c | |||
| @@ -1416,12 +1416,29 @@ void fnic_terminate_rport_io(struct fc_rport *rport) | |||
| 1416 | unsigned long flags; | 1416 | unsigned long flags; |
| 1417 | struct scsi_cmnd *sc; | 1417 | struct scsi_cmnd *sc; |
| 1418 | struct scsi_lun fc_lun; | 1418 | struct scsi_lun fc_lun; |
| 1419 | struct fc_rport_libfc_priv *rdata = rport->dd_data; | 1419 | struct fc_rport_libfc_priv *rdata; |
| 1420 | struct fc_lport *lport = rdata->local_port; | 1420 | struct fc_lport *lport; |
| 1421 | struct fnic *fnic = lport_priv(lport); | 1421 | struct fnic *fnic; |
| 1422 | struct fc_rport *cmd_rport; | 1422 | struct fc_rport *cmd_rport; |
| 1423 | enum fnic_ioreq_state old_ioreq_state; | 1423 | enum fnic_ioreq_state old_ioreq_state; |
| 1424 | 1424 | ||
| 1425 | if (!rport) { | ||
| 1426 | printk(KERN_ERR "fnic_terminate_rport_io: rport is NULL\n"); | ||
| 1427 | return; | ||
| 1428 | } | ||
| 1429 | rdata = rport->dd_data; | ||
| 1430 | |||
| 1431 | if (!rdata) { | ||
| 1432 | printk(KERN_ERR "fnic_terminate_rport_io: rdata is NULL\n"); | ||
| 1433 | return; | ||
| 1434 | } | ||
| 1435 | lport = rdata->local_port; | ||
| 1436 | |||
| 1437 | if (!lport) { | ||
| 1438 | printk(KERN_ERR "fnic_terminate_rport_io: lport is NULL\n"); | ||
| 1439 | return; | ||
| 1440 | } | ||
| 1441 | fnic = lport_priv(lport); | ||
| 1425 | FNIC_SCSI_DBG(KERN_DEBUG, | 1442 | FNIC_SCSI_DBG(KERN_DEBUG, |
| 1426 | fnic->lport->host, "fnic_terminate_rport_io called" | 1443 | fnic->lport->host, "fnic_terminate_rport_io called" |
| 1427 | " wwpn 0x%llx, wwnn0x%llx, rport 0x%p, portid 0x%06x\n", | 1444 | " wwpn 0x%llx, wwnn0x%llx, rport 0x%p, portid 0x%06x\n", |
