linux/drivers/s390/scsi
Julian Wiedmann d251193d17 scsi: zfcp: Clarify access to erp_action in zfcp_fsf_req_complete()
While reviewing commit 936e6b85da ("scsi: zfcp: Fix panic on ERP timeout
for previously dismissed ERP action"), I stumbled over
zfcp_fsf_req_complete() and wondered whether it has similar issues wrt
concurrent modification of req->erp_action by
zfcp_erp_strategy_check_fsfreq().

But a closer look shows that both its two callers [zfcp_fsf_reqid_check(),
zfcp_fsf_req_dismiss_all()] remove the request from the adapter's req_list
under the req_list's lock.  Hence we can trust that if
zfcp_erp_strategy_check_fsfreq() concurrently looks up the corresponding
req_id, it won't find this request and is thus unable to modify it while
it's being processed by zfcp_fsf_req_complete().

Add a code comment that hopefully makes this easier for future readers, and
condense the two accesses to ->erp_action that made me trip over this code
path in the first place.

Link: https://lore.kernel.org/r/c500eac301fcbba5af942bbd200f2d6b14e46994.1599765652.git.bblock@linux.ibm.com
Reviewed-by: Steffen Maier <maier@linux.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2020-09-15 18:01:58 -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: Move allocation of the shost object to after xconf- and xport-data 2020-05-11 23:19:52 -04:00
zfcp_ccw.c scsi: zfcp: Replace open-coded list move 2020-07-08 00:50:55 -04: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 allocation of the shost object to after xconf- and xport-data 2020-05-11 23:19:52 -04:00
zfcp_erp.c scsi: zfcp: Use list_first_entry_or_null() in zfcp_erp_thread() 2020-09-15 18:01:57 -04:00
zfcp_ext.h scsi: zfcp: Move allocation of the shost object to after xconf- and xport-data 2020-05-11 23:19:52 -04:00
zfcp_fc.c scsi: zfcp: Use prandom_u32_max() for backoff 2020-07-08 00:50:52 -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: Clarify access to erp_action in zfcp_fsf_req_complete() 2020-09-15 18:01:58 -04:00
zfcp_fsf.h SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
zfcp_qdio.c scsi: zfcp: Avoid benign overflow of the Request Queue's free-level 2020-07-08 00:50:56 -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 allocation of the shost object to after xconf- and xport-data 2020-05-11 23:19:52 -04:00
zfcp_sysfs.c scsi: zfcp: Fence early sysfs interfaces for accesses of shost objects 2020-05-11 23:19:50 -04: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