On Thu, 5 Apr 2018 10:33:01 -0700 Bart Van Assche <bart.vanassche@xxxxxxx> wrote: > Ensure that CONDITION MET and other non-zero status values that > indicate success are translated into BLK_STS_OK. > > Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxx> > Cc: Hannes Reinecke <hare@xxxxxxxx> > Cc: Douglas Gilbert <dgilbert@xxxxxxxxxxxx> > Cc: Damien Le Moal <damien.lemoal@xxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Lee Duncan <lduncan@xxxxxxxx> > --- > drivers/scsi/scsi_lib.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index 26d82f323b31..3e494a476c50 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -733,6 +733,15 @@ static bool scsi_end_request(struct request > *req, blk_status_t error, static blk_status_t > scsi_result_to_blk_status(struct scsi_cmnd *cmd, int result) { > switch (host_byte(result)) { > + case DID_OK: > + /* > + * Also check the other bytes than the status byte > in result > + * to handle the case when a SCSI LLD sets result to > + * DRIVER_SENSE << 24 without setting > SAM_STAT_CHECK_CONDITION. > + */ > + if (scsi_status_is_good(result) && (result & ~0xff) > == 0) > + return BLK_STS_OK; > + return BLK_STS_IOERR; > case DID_TRANSPORT_FAILFAST: > return BLK_STS_TRANSPORT; > case DID_TARGET_FAILURE: Reviewed-by: Hannes Reinecke <hare@xxxxxxxx> Cheers, Hannes