lkml.org 
[lkml]   [2019]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.0 074/146] scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host
    Date
    5.0-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Steffen Maier <maier@linux.ibm.com>

    commit fe67888fc007a76b81e37da23ce5bd8fb95890b0 upstream.

    An already deleted SCSI device can exist on the Scsi_Host and remain there
    because something still holds a reference. A new SCSI device with the same
    H:C:T:L and FCP device, target port WWPN, and FCP LUN can be created. When
    we try to unblock an rport, we still find the deleted SCSI device and
    return early because the zfcp_scsi_dev of that SCSI device is not
    ZFCP_STATUS_COMMON_UNBLOCKED. Hence we miss to unblock the rport, even if
    the new proper SCSI device would be in good state.

    Therefore, skip deleted SCSI devices when iterating the sdevs of the shost.
    [cf. __scsi_device_lookup{_by_target}() or scsi_device_get()]

    The following abbreviated trace sequence can indicate such problem:

    Area : REC
    Tag : ersfs_3
    LUN : 0x4045400300000000
    WWPN : 0x50050763031bd327
    LUN status : 0x40000000 not ZFCP_STATUS_COMMON_UNBLOCKED
    Ready count : n not incremented yet
    Running count : 0x00000000
    ERP want : 0x01
    ERP need : 0xc1 ZFCP_ERP_ACTION_NONE

    Area : REC
    Tag : ersfs_3
    LUN : 0x4045400300000000
    WWPN : 0x50050763031bd327
    LUN status : 0x41000000
    Ready count : n+1
    Running count : 0x00000000
    ERP want : 0x01
    ERP need : 0x01

    ...

    Area : REC
    Level : 4 only with increased trace level
    Tag : ertru_l
    LUN : 0x4045400300000000
    WWPN : 0x50050763031bd327
    LUN status : 0x40000000
    Request ID : 0x0000000000000000
    ERP status : 0x01800000
    ERP step : 0x1000
    ERP action : 0x01
    ERP count : 0x00

    NOT followed by a trace record with tag "scpaddy"
    for WWPN 0x50050763031bd327.

    Signed-off-by: Steffen Maier <maier@linux.ibm.com>
    Fixes: 6f2ce1c6af37 ("scsi: zfcp: fix rport unblock race with LUN recovery")
    Cc: <stable@vger.kernel.org> #2.6.32+
    Reviewed-by: Jens Remus <jremus@linux.ibm.com>
    Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/s390/scsi/zfcp_erp.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/drivers/s390/scsi/zfcp_erp.c
    +++ b/drivers/s390/scsi/zfcp_erp.c
    @@ -1341,6 +1341,9 @@ static void zfcp_erp_try_rport_unblock(s
    struct zfcp_scsi_dev *zsdev = sdev_to_zfcp(sdev);
    int lun_status;

    + if (sdev->sdev_state == SDEV_DEL ||
    + sdev->sdev_state == SDEV_CANCEL)
    + continue;
    if (zsdev->port != port)
    continue;
    /* LUN under port of interest */

    \
     
     \ /
      Last update: 2019-04-01 20:11    [W:2.358 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site