• Steffen Maier's avatar
    scsi: zfcp: decouple our scsi_eh callbacks from scsi_cmnd · 674595d8
    Steffen Maier authored
    Note: zfcp_scsi_eh_host_reset_handler() will be converted in a later patch.
    
    zfcp_scsi_eh_device_reset_handler() now only depends on scsi_device.
    zfcp_scsi_eh_target_reset_handler() now only depends on scsi_target.
    All derive other objects from these intended callback arguments.
    
    zfcp_scsi_eh_target_reset_handler() is special: The FCP channel requires a
    valid LUN handle so we try to find ourselves a stand-in scsi_device as
    suggested by Hannes Reinecke. If it cannot find a stand-in scsi device,
    trace a record like the following (formatted with zfcpdbf from s390-tools):
    
    Timestamp      : ...
    Area           : SCSI
    Subarea        : 00
    Level          : 1
    Exception      : -
    CPU ID         : ..
    Caller         : 0x...
    Record ID      : 1
    Tag            : tr_nosd        target reset, no SCSI device
    Request ID     : 0x0000000000000000                     none (invalid)
    SCSI ID        : 0x00000000     SCSI ID/target denoting scope
    SCSI LUN       : 0xffffffff                             none (invalid)
    SCSI LUN high  : 0xffffffff                             none (invalid)
    SCSI result    : 0x00002003     field re-used for midlayer value: FAILED
    SCSI retries   : 0xff                                   none (invalid)
    SCSI allowed   : 0xff                                   none (invalid)
    SCSI scribble  : 0xffffffffffffffff                     none (invalid)
    SCSI opcode    : ffffffff ffffffff ffffffff ffffffff    none (invalid)
    FCP rsp inf cod: 0xff                                   none (invalid)
    FCP rsp IU     : 00000000 00000000 00000000 00000000    none (invalid)
                     00000000 00000000
    
    Actually change the signature of zfcp_task_mgmt_function() used by
    zfcp_scsi_eh_device_reset_handler() & zfcp_scsi_eh_target_reset_handler().
    Since it was prepared in a previous patch, we only need to delete a local
    auto variable which is now the intended argument.
    Suggested-by: default avatarHannes Reinecke <hare@suse.com>
    Signed-off-by: default avatarSteffen Maier <maier@linux.ibm.com>
    Reviewed-by: default avatarBenjamin Block <bblock@linux.ibm.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    674595d8
zfcp_scsi.c 23.7 KB