diff options
author | Pete Zaitcev <zaitcev@redhat.com> | 2008-04-19 17:35:30 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-05-02 13:25:52 -0400 |
commit | 82fe26ba7a21d9bcc77e6142c941683eede32940 (patch) | |
tree | 3c3e2795ca536aba1a25d4cde1e91a5150a4acee /drivers/block/ub.c | |
parent | 2c51ae70ede5a90d8ccb67d965c1b4e20fc4e110 (diff) |
ub: Tune retries
Make ub to fail faster in hopeless cases.
Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/block/ub.c')
-rw-r--r-- | drivers/block/ub.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/block/ub.c b/drivers/block/ub.c index b87ad77e5bb5..5c6a6e89d2fb 100644 --- a/drivers/block/ub.c +++ b/drivers/block/ub.c | |||
@@ -792,10 +792,6 @@ static void ub_rw_cmd_done(struct ub_dev *sc, struct ub_scsi_cmd *cmd) | |||
792 | scsi_status = 0; | 792 | scsi_status = 0; |
793 | } else { | 793 | } else { |
794 | if (cmd->act_len != cmd->len) { | 794 | if (cmd->act_len != cmd->len) { |
795 | if ((cmd->key == MEDIUM_ERROR || | ||
796 | cmd->key == UNIT_ATTENTION) && | ||
797 | ub_rw_cmd_retry(sc, lun, urq, cmd) == 0) | ||
798 | return; | ||
799 | scsi_status = SAM_STAT_CHECK_CONDITION; | 795 | scsi_status = SAM_STAT_CHECK_CONDITION; |
800 | } else { | 796 | } else { |
801 | scsi_status = 0; | 797 | scsi_status = 0; |
@@ -811,7 +807,10 @@ static void ub_rw_cmd_done(struct ub_dev *sc, struct ub_scsi_cmd *cmd) | |||
811 | else | 807 | else |
812 | scsi_status = DID_ERROR << 16; | 808 | scsi_status = DID_ERROR << 16; |
813 | } else { | 809 | } else { |
814 | if (cmd->error == -EIO) { | 810 | if (cmd->error == -EIO && |
811 | (cmd->key == 0 || | ||
812 | cmd->key == MEDIUM_ERROR || | ||
813 | cmd->key == UNIT_ATTENTION)) { | ||
815 | if (ub_rw_cmd_retry(sc, lun, urq, cmd) == 0) | 814 | if (ub_rw_cmd_retry(sc, lun, urq, cmd) == 0) |
816 | return; | 815 | return; |
817 | } | 816 | } |