Skip to contentSkip to conversation

Fix libata-eh don't retry command after reset succeeded.

PATCH Mark Lord 2 participants 3 messages Jan 14, 2013 1 message not in the archive

Subsystems (2)
lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Mark Lord

author
#1 lore raw
Quoted 28 lines

From 9cc9a85f17a8525e53caf430611d762c105d324c Mon Sep 17 00:00:00 2001
From: Bian Yu <[email protected]>
Date: Tue, 18 Dec 2012 05:58:34 -0500
Subject: [PATCH] Fix libata-eh don't retry command after reset succeeded.
It's introduced by commit 8d899e70c1b3afff, When disk has a UNC error, qc->err_mask will set AC_ERR_MEDIA flag.

---
 drivers/ata/libata-eh.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/ata/libata-eh.c +1 -1
index bf039b0..bcf4437 100644
@@ -2094,7 +2094,7 @@ static unsigned int ata_eh_speed_down(struct ata_device *dev,
  */
 static inline int ata_eh_worth_retry(struct ata_queued_cmd *qc)
 {
-       if (qc->flags & AC_ERR_MEDIA)
+       if (qc->err_mask & AC_ERR_MEDIA)
                return 0;       /* don't retry media errors */
        if (qc->flags & ATA_QCFLAG_IO)
                return 1;       /* otherwise retry anything from fs stack */
Signature · 1 line
1.7.1

Yup, good catch. The original patch to fix retries (from me) had it that way, but somewhere among the enforced revisions this error crept in unnoticed.

Jeff -- wanna pick this one up?
Could be useful for -stable, too.

author
#2 lore raw
Quoted 8 lines · Mark Lord
Quoted 8 lines

From 9cc9a85f17a8525e53caf430611d762c105d324c Mon Sep 17 00:00:00 2001
From: Bian Yu <[email protected]>
Date: Tue, 18 Dec 2012 05:58:34 -0500
Subject: [PATCH] Fix libata-eh don't retry command after reset succeeded.
It's introduced by commit 8d899e70c1b3afff, When disk has a UNC error, qc->err_mask will set AC_ERR_MEDIA flag.

..

Quoted 5 lines

Yup, good catch. The original patch to fix retries (from me) had it that way, but somewhere among the enforced revisions this error crept in unnoticed.

Jeff -- wanna pick this one up?
Could be useful for -stable, too.

The original version of this correction patch had the "Signed-off-by" line. See below.

Quoted 1 line

From 78c0fb104c9957db682518b97ce6a01ce1bc07b6 Mon Sep 17 00:00:00 2001

From: Bian Yu <[email protected]>
Date: Wed, 12 Dec 2012 22:26:58 -0500
Subject: [PATCH] It should be a mistake introduced by commit 8d899e70c1b3afff.
because only qc->flags can't be set AC_ERR_*

---
 drivers/ata/libata-eh.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/ata/libata-eh.c +0 -0
index bf039b0..bcf4437 100644
@@ -2094,7 +2094,7 @@ static unsigned int ata_eh_speed_down(struct

ata_device *dev,
*/
static inline int ata_eh_worth_retry(struct ata_queued_cmd *qc) {
- if (qc->flags & AC_ERR_MEDIA)
+ if (qc->err_mask & AC_ERR_MEDIA)
return 0; /* don't retry media errors */
if (qc->flags & ATA_QCFLAG_IO)
return 1; /* otherwise retry anything from fs stack */

#3 lore raw
In reply to Mark Lord

Hello.

Quoted 5 lines · Mark Lord
Quoted 5 lines

From 9cc9a85f17a8525e53caf430611d762c105d324c Mon Sep 17 00:00:00 2001
From: Bian Yu <[email protected]>
Date: Tue, 18 Dec 2012 05:58:34 -0500
Subject: [PATCH] Fix libata-eh don't retry command after reset succeeded.
It's introduced by commit 8d899e70c1b3afff, When disk has a UNC error,

Please also specify that commit's summary in parens.

Quoted 2 lines
Quoted 2 lines

qc->err_mask will set AC_ERR_MEDIA flag.

MBR, Sergei