diff options
author | Pete Zaitcev <zaitcev@redhat.com> | 2008-04-19 23:35:30 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-05-02 19:25:52 +0200 |
commit | 82fe26ba7a21d9bcc77e6142c941683eede32940 (patch) | |
tree | 3c3e2795ca536aba1a25d4cde1e91a5150a4acee /drivers/block/ub.c | |
parent | ub: Fix timeouts (diff) | |
download | linux-82fe26ba7a21d9bcc77e6142c941683eede32940.tar.xz linux-82fe26ba7a21d9bcc77e6142c941683eede32940.zip |
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) scsi_status = 0; } else { if (cmd->act_len != cmd->len) { - if ((cmd->key == MEDIUM_ERROR || - cmd->key == UNIT_ATTENTION) && - ub_rw_cmd_retry(sc, lun, urq, cmd) == 0) - return; scsi_status = SAM_STAT_CHECK_CONDITION; } else { scsi_status = 0; @@ -811,7 +807,10 @@ static void ub_rw_cmd_done(struct ub_dev *sc, struct ub_scsi_cmd *cmd) else scsi_status = DID_ERROR << 16; } else { - if (cmd->error == -EIO) { + if (cmd->error == -EIO && + (cmd->key == 0 || + cmd->key == MEDIUM_ERROR || + cmd->key == UNIT_ATTENTION)) { if (ub_rw_cmd_retry(sc, lun, urq, cmd) == 0) return; } |