linux-stable/drivers/s390/scsi
Christof Schmitt fdbd1c5e27 [SCSI] zfcp: Allow running unit/LUN shutdown without acquiring reference
With the change for the LUN data to be part of the scsi_device, the
slave_destroy callback will be the final call to the
zfcp_erp_unit_shutdown function. The erp tries to acquire a reference
to run the action asynchronously and fail, if it cannot get the
reference. But calling scsi_device_get from slave_destroy will fail,
because the scsi_device is already in the state SDEV_DEL.

Introduce a new call into the zfcp erp to solve this: The function
zfcp_erp_unit_shutdown_wait will close the LUN and wait for the erp to
finish without acquiring an additional reference. The wait allows to
omit the reference; the caller waiting for the erp to finish already
has a reference that holds the struct in place.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2010-09-16 22:54:16 -04:00
..
Makefile [SCSI] zfcp: Move code for managing zfcp_unit devices to new file 2010-09-16 22:54:15 -04:00
zfcp_aux.c [SCSI] zfcp: Move code for managing zfcp_unit devices to new file 2010-09-16 22:54:15 -04:00
zfcp_ccw.c [SCSI] zfcp: Rename sysfs_device attribute to dev in zfcp_unit and zfcp_port 2010-02-17 17:46:30 -06:00
zfcp_cfdc.c [SCSI] zfcp: Use memdup_user and kstrdup 2010-07-28 09:48:45 -05:00
zfcp_dbf.c [SCSI] zfcp: Introduce experimental support for DIF/DIX 2010-07-28 09:48:56 -05:00
zfcp_dbf.h [SCSI] zfcp: Introduce experimental support for DIF/DIX 2010-07-28 09:48:56 -05:00
zfcp_def.h [SCSI] zfcp: Add zfcp private struct as SCSI device driver data 2010-09-16 22:54:14 -04:00
zfcp_erp.c [SCSI] zfcp: Allow running unit/LUN shutdown without acquiring reference 2010-09-16 22:54:16 -04:00
zfcp_ext.h [SCSI] zfcp: Allow running unit/LUN shutdown without acquiring reference 2010-09-16 22:54:16 -04:00
zfcp_fc.c [SCSI] zfcp: Post events through FC transport class 2010-07-28 09:48:52 -05:00
zfcp_fc.h [SCSI] zfcp: Introduce experimental support for DIF/DIX 2010-07-28 09:48:56 -05:00
zfcp_fsf.c [SCSI] zfcp: Trigger logging in the FCP channel on qdio error conditions 2010-07-28 09:48:58 -05:00
zfcp_fsf.h [SCSI] zfcp: Introduce experimental support for DIF/DIX 2010-07-28 09:48:56 -05:00
zfcp_qdio.c [SCSI] zfcp: Trigger logging in the FCP channel on qdio error conditions 2010-07-28 09:48:58 -05:00
zfcp_qdio.h [SCSI] zfcp: Introduce experimental support for DIF/DIX 2010-07-28 09:48:56 -05:00
zfcp_reqlist.h [SCSI] zfcp: Move FSF request tracking code to new file 2010-02-17 17:46:19 -06:00
zfcp_scsi.c [SCSI] zfcp: Move code for managing zfcp_unit devices to new file 2010-09-16 22:54:15 -04:00
zfcp_sysfs.c [SCSI] zfcp: Remove ZFCP_SYSFS_FAILED macro and implement fcp_lun_show without macro 2010-09-16 22:54:16 -04:00
zfcp_unit.c [SCSI] zfcp: Move code for managing zfcp_unit devices to new file 2010-09-16 22:54:15 -04:00