]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.fixes/scsi-retry-TASK_ABORTED
Imported linux-2.6.27.39 suse/xen patches.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / scsi-retry-TASK_ABORTED
diff --git a/src/patches/suse-2.6.27.31/patches.fixes/scsi-retry-TASK_ABORTED b/src/patches/suse-2.6.27.31/patches.fixes/scsi-retry-TASK_ABORTED
deleted file mode 100644 (file)
index 8d5e2b1..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-Subject: scsi_error: TASK ABORTED status handling improvement
-From: Vladislav Bolkhovitin <vst@vlnb.net>
-Date: Fri Nov 7 11:21:03 2008 -0600:
-Git: ab2d67aa39bc63a60fba748b27cf4d962d0dc7f8
-
-This patch improves handling of TASK ABORTED status by Linux SCSI
-mid-layer. Currently, command returned with this status considered
-failed and returned to upper layers. It leads to additional error
-recovery load on file systems and block layer, which sometimes can
-cause undesired side effects, like I/O errors and file systems
-corruptions. See http://lkml.org/lkml/2008/11/1/38, for instance.
-
-From other side, TASK ABORTED status is returned by SCSI target if the
-corresponding command was aborted by another initiator and the target
-has TAS bit set in the control mode page. So, in the majority of cases
-commands with TASK ABORTED status should be simply retried. In other
-cases, maybe_retry path will not retry if no retries are allowed.
-
-This patch implement suggestion by James Bottomley from
-http://marc.info/?l=linux-scsi&m=121932916906009&w=2.
-
-Signed-off-by: Vladislav Bolkhovitin <vst@vlnb.net>
-Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-Signed-off-by: Hannes Reinecke <hare@suse.de>
-
----
- drivers/scsi/scsi_error.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/scsi/scsi_error.c
-+++ b/drivers/scsi/scsi_error.c
-@@ -1486,8 +1486,9 @@ int scsi_decide_disposition(struct scsi_
-               return ADD_TO_MLQUEUE;
-       case GOOD:
-       case COMMAND_TERMINATED:
--      case TASK_ABORTED:
-               return SUCCESS;
-+      case TASK_ABORTED:
-+              goto maybe_retry;
-       case CHECK_CONDITION:
-               rtn = scsi_check_sense(scmd);
-               if (rtn == NEEDS_RETRY)