]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/scsi/scsi_lib.c
Merge tag 'upstream-3.4-rc1' of git://git.infradead.org/linux-ubi
[mv-sheeva.git] / drivers / scsi / scsi_lib.c
index a33b2b66da6759d469007e049519dc17f812e9c3..ead6405f3e51465f5dfe95412cb4d242fa704608 100644 (file)
@@ -682,11 +682,11 @@ static int __scsi_error_from_host_byte(struct scsi_cmnd *cmd, int result)
                error = -ENOLINK;
                break;
        case DID_TARGET_FAILURE:
-               cmd->result |= (DID_OK << 16);
+               set_host_byte(cmd, DID_OK);
                error = -EREMOTEIO;
                break;
        case DID_NEXUS_FAILURE:
-               cmd->result |= (DID_OK << 16);
+               set_host_byte(cmd, DID_OK);
                error = -EBADE;
                break;
        default:
@@ -880,6 +880,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
                                    cmd->cmnd[0] == WRITE_SAME)) {
                                description = "Discard failure";
                                action = ACTION_FAIL;
+                               error = -EREMOTEIO;
                        } else
                                action = ACTION_FAIL;
                        break;