b9732f789d
Issue: ocs_fc(4) driver panics. It's induced by setting the port_state sysctl to offline, then online, then offline, then online, and so forth and so on in rapid succession. Reason: While we set the port_state to online fc discovery will start and OS is enumerating the target discs by calling ocs_action(), then set the port state to "offline" which deletes domain/sport/nodes. In ocs_action()->XPT_GET_TRAN_SETTINGS we are accessing the remote node which can be invalid to get the wwpn, wwnn and port. Fix: Removed accessing of remote node and domain in some ocs_action() cases. Populated the required values from ocs_fcport. This removes the dependency of node and domain structures while processing XPT_PATH_INQ and XPT_GET_TRAN_SETTINGS. We will invalidate the target entries after the device lost timeout(30 seconds). Approved by: ken, mav MFC after: 3 weeks |
||
---|---|---|
.. | ||
ocs_cam.c | ||
ocs_cam.h | ||
ocs_common.h | ||
ocs_ddump.c | ||
ocs_ddump.h | ||
ocs_device.c | ||
ocs_device.h | ||
ocs_domain.c | ||
ocs_domain.h | ||
ocs_drv_fc.h | ||
ocs_els.c | ||
ocs_els.h | ||
ocs_fabric.c | ||
ocs_fabric.h | ||
ocs_fcp.h | ||
ocs_hw_queues.c | ||
ocs_hw_queues.h | ||
ocs_hw.c | ||
ocs_hw.h | ||
ocs_io.c | ||
ocs_io.h | ||
ocs_ioctl.c | ||
ocs_ioctl.h | ||
ocs_list.h | ||
ocs_mgmt.c | ||
ocs_mgmt.h | ||
ocs_node.c | ||
ocs_node.h | ||
ocs_os.c | ||
ocs_os.h | ||
ocs_pci.c | ||
ocs_scsi.c | ||
ocs_scsi.h | ||
ocs_sm.c | ||
ocs_sm.h | ||
ocs_sport.c | ||
ocs_sport.h | ||
ocs_stats.h | ||
ocs_unsol.c | ||
ocs_unsol.h | ||
ocs_utils.c | ||
ocs_utils.h | ||
ocs_vpd.h | ||
ocs_xport.c | ||
ocs_xport.h | ||
ocs.h | ||
sli4.c | ||
sli4.h | ||
version.h |