lkml.org 
[lkml]   [2012]   [Mar]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/2] Drivers: scsi: storvsc: Set the scsi result correctly when SRB status is INVALID
    Date
    Currently Windows hosts only support a subset of scsi commands and for commands
    that are not supported, the host returns a generic SRB failure status.
    However, they have agreed to change the return value to indicate that
    the command is not supported. In preparation for that, handle the
    SRB_STATUS_INVALID_REQUEST return value correctly.

    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    ---
    drivers/scsi/storvsc_drv.c | 8 ++++++++
    1 files changed, 8 insertions(+), 0 deletions(-)

    diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
    index 44c7a48..8b967c9 100644
    --- a/drivers/scsi/storvsc_drv.c
    +++ b/drivers/scsi/storvsc_drv.c
    @@ -202,6 +202,7 @@ enum storvsc_request_type {
    #define SRB_STATUS_INVALID_LUN 0x20
    #define SRB_STATUS_SUCCESS 0x01
    #define SRB_STATUS_ERROR 0x04
    +#define SRB_STATUS_INVALID_REQUEST 0x06

    /*
    * This is the end of Protocol specific defines.
    @@ -779,6 +780,13 @@ static void storvsc_command_completion(struct storvsc_cmd_request *cmd_request)
    }

    /*
    + * If the host returns with an invalid request, set
    + * the scsi command result correctly.
    + */
    + if (vm_srb->srb_status == SRB_STATUS_INVALID_REQUEST)
    + scmnd->result = ILLEGAL_REQUEST << 16;
    +
    + /*
    * If there is an error; offline the device since all
    * error recovery strategies would have already been
    * deployed on the host side.
    --
    1.7.4.1


    \
     
     \ /
      Last update: 2012-03-16 21:19    [W:0.042 / U:60.900 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site