From: Damien Le Moal <damien.lemoal@xxxxxxx> The 'sense_deferred' variable in sd_done() is set only if 'sense_valid' is true. So it is not necessary and the result of scsi_sense_is_deferred() and of scsi_command_normalize_sense() can be combined together in 'sense_valid'. Also, since scsi_command_normalize_sense() returns a bool, use that type for 'sense_valid' declaration. No functional change is introduced by this patch. Signed-off-by: Damien Le Moal <damien.lemoal@xxxxxxx> --- drivers/scsi/sd.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 935ce34..c57084e 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1808,8 +1808,7 @@ static int sd_done(struct scsi_cmnd *SCpnt) struct scsi_sense_hdr sshdr; struct scsi_disk *sdkp = scsi_disk(SCpnt->request->rq_disk); struct request *req = SCpnt->request; - int sense_valid = 0; - int sense_deferred = 0; + bool sense_valid = false; unsigned char op = SCpnt->cmnd[0]; unsigned char unmap = SCpnt->cmnd[1] & 8; @@ -1837,15 +1836,12 @@ static int sd_done(struct scsi_cmnd *SCpnt) break; } - if (result) { - sense_valid = scsi_command_normalize_sense(SCpnt, &sshdr); - if (sense_valid) - sense_deferred = scsi_sense_is_deferred(&sshdr); - } + if (result) + sense_valid = scsi_command_normalize_sense(SCpnt, &sshdr) && + !scsi_sense_is_deferred(&sshdr); sdkp->medium_access_timed_out = 0; - if (driver_byte(result) != DRIVER_SENSE && - (!sense_valid || sense_deferred)) + if (driver_byte(result) != DRIVER_SENSE && !sense_valid) goto out; switch (sshdr.sense_key) { -- 2.9.3