OpenCloudOS-Kernel/drivers/s390/scsi
Benjamin Block 971f2abb4c scsi: zfcp: Fence adapter status propagation for common statuses
Common status flags that all main objects - adapter, port, and unit -
support are propagated to sub-objects when set or cleared. For instance,
when setting the status ZFCP_STATUS_COMMON_ERP_INUSE for an adapter object,
we will propagate this to all its child ports and units - same for when
clearing a common status flag.

Units of an adapter object are enumerated via __shost_for_each_device()
over the scsi host object of the corresponding adapter.

Once we move the scsi host object allocation and registration to after the
first exchange config and exchange port data, this won't be possible for
cases where we set or clear common statuses during the very first adapter
recovery.

But since we won't have any port or unit objects yet at that point of time,
we can just fence the status propagation for cases where the scsi host
object is not yet set in the adapter object. It won't change any effective
status propagations, but will prevent us from dereferencing invalid
pointers.

For any later point in the work flow the scsi host object will be set and
thus nothing is changed then.

Link: https://lore.kernel.org/r/f51fe5f236a1e3d1ce53379c308777561bfe35e1.1588956679.git.bblock@linux.ibm.com
Reviewed-by: Steffen Maier <maier@linux.ibm.com>
Signed-off-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2020-05-11 23:19:50 -04:00
..
Makefile scsi: zfcp: diagnostics buffer caching and use for exchange port data 2019-10-28 22:16:14 -04:00
zfcp_aux.c scsi: zfcp: introduce sysfs interface for diagnostics of local SFP transceiver 2019-10-28 22:16:15 -04:00
zfcp_ccw.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zfcp_dbf.c scsi: zfcp: trace FC Endpoint Security of FCP devices and connections 2020-03-17 13:12:40 -04:00
zfcp_dbf.h scsi: zfcp: trace FC Endpoint Security of FCP devices and connections 2020-03-17 13:12:40 -04:00
zfcp_def.h scsi: zfcp: trace FC Endpoint Security of FCP devices and connections 2020-03-17 13:12:40 -04:00
zfcp_diag.c scsi: zfcp: move maximum age of diagnostic buffers into a per-adapter variable 2019-10-28 22:16:15 -04:00
zfcp_diag.h scsi: zfcp: move maximum age of diagnostic buffers into a per-adapter variable 2019-10-28 22:16:15 -04:00
zfcp_erp.c scsi: zfcp: Fence adapter status propagation for common statuses 2020-05-11 23:19:50 -04:00
zfcp_ext.h scsi: zfcp: Move fc_host updates during xport data handling into fenced function 2020-05-11 23:19:48 -04:00
zfcp_fc.c scsi: s390: zfcp_fc: use sg helper to iterate over scatterlist 2019-06-20 15:21:33 -04:00
zfcp_fc.h scsi: zfcp: silence remaining kdoc warnings in header files 2018-11-15 15:01:18 -05:00
zfcp_fsf.c scsi: zfcp: Fence fc_host updates during link-down handling 2020-05-11 23:19:48 -04:00
zfcp_fsf.h SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
zfcp_qdio.c scsi: zfcp: Move shost modification after QDIO (re-)open into fenced function 2020-05-11 23:19:46 -04:00
zfcp_qdio.h s390/qdio: fill SBALEs with absolute addresses 2020-02-19 17:26:32 +01:00
zfcp_reqlist.h scsi: zfcp: silence remaining kdoc warnings in header files 2018-11-15 15:01:18 -05:00
zfcp_scsi.c scsi: zfcp: Move fc_host updates during xport data handling into fenced function 2020-05-11 23:19:48 -04:00
zfcp_sysfs.c SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
zfcp_unit.c scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs) 2019-05-29 21:52:31 -04:00