lkml.org 
[lkml]   [2022]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.19 153/158] scsi: core: Fix passthrough retry counter handling
    Date
    From: Mike Christie <michael.christie@oracle.com>

    commit fac8e558da9485e13a0ae0488aa0b8a8c307cd34 upstream.

    Passthrough users will set the scsi_cmnd->allowed value and were expecting
    up to $allowed retries. The problem is that before:

    commit 6aded12b10e0 ("scsi: core: Remove struct scsi_request")

    we used to set the retries on the scsi_request then copy them over to
    scsi_cmnd->allowed in scsi_setup_scsi_cmnd. With that patch we now set
    scsi_cmnd->allowed to 0 in scsi_prepare_cmd and overwrite what the
    passthrough user set.

    This moves the allowed initialization to after the blk_rq_is_passthrough()
    check so it's only done for the non-passthrough path where the ULD
    init_command will normally set an allowed value it prefers.

    Link: https://lore.kernel.org/r/20220812011206.9157-1-michael.christie@oracle.com
    Fixes: 6aded12b10e0 ("scsi: core: Remove struct scsi_request")
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/scsi/scsi_lib.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/drivers/scsi/scsi_lib.c
    +++ b/drivers/scsi/scsi_lib.c
    @@ -1549,7 +1549,6 @@ static blk_status_t scsi_prepare_cmd(str
    scsi_init_command(sdev, cmd);

    cmd->eh_eflags = 0;
    - cmd->allowed = 0;
    cmd->prot_type = 0;
    cmd->prot_flags = 0;
    cmd->submitter = 0;
    @@ -1600,6 +1599,8 @@ static blk_status_t scsi_prepare_cmd(str
    return ret;
    }

    + /* Usually overridden by the ULP */
    + cmd->allowed = 0;
    memset(cmd->cmnd, 0, sizeof(cmd->cmnd));
    return scsi_cmd_to_driver(cmd)->init_command(cmd);
    }

    \
     
     \ /
      Last update: 2022-08-29 13:45    [W:4.627 / U:0.356 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site