]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
[SCSI] hpsa: retry commands completing with status of UNSOLICITED_ABORT
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Tue, 26 Jul 2011 16:08:52 +0000 (11:08 -0500)
committerJoe Jin <joe.jin@oracle.com>
Fri, 21 Dec 2012 03:19:34 +0000 (11:19 +0800)
In a shared SAS setup, target devices may be reset by one of
several hosts, and outstanding commands on that device will be
completed to corresponding hosts with status of UNSOLICITED_ABORT.
Such commands should be retried instead of being treated as i/o
errors.  Also fixed a nearby spelling error.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
(cherry picked from commit f6e76055ba778c56716ba79e106db28297775e87)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/scsi/hpsa.c

index 71c804f71b33639c9344be57536a6f0ff25dc2c5..0b2f3598ffda6002b5367d06721cca4b4e81af98 100644 (file)
@@ -1355,8 +1355,8 @@ static void complete_scsi_command(struct CommandList *cp)
                dev_warn(&h->pdev->dev, "cp %p reports abort failed\n", cp);
                break;
        case CMD_UNSOLICITED_ABORT:
-               cmd->result = DID_RESET << 16;
-               dev_warn(&h->pdev->dev, "cp %p aborted do to an unsolicited "
+               cmd->result = DID_SOFT_ERROR << 16; /* retry the command */
+               dev_warn(&h->pdev->dev, "cp %p aborted due to an unsolicited "
                        "abort\n", cp);
                break;
        case CMD_TIMEOUT: