diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-21 10:42:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-21 10:42:59 -0500 |
commit | 836f48c5f8c6ef004419f1605514aa05eb58eefb (patch) | |
tree | ca9d806077e709252c0f33532a55595275b11637 | |
parent | bdeef61cd053b6a88be7d2c82fd43e12f8c9f75e (diff) | |
parent | 534ead709235b967b659947c55d9130873a432c4 (diff) |
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
libata: retry FS IOs even if it has failed with AC_ERR_INVALID
-rw-r--r-- | drivers/ata/libata-eh.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 0ea97c942ced..9f6cfac0f2cc 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -2028,8 +2028,9 @@ static void ata_eh_link_autopsy(struct ata_link *link) | |||
2028 | qc->err_mask &= ~(AC_ERR_DEV | AC_ERR_OTHER); | 2028 | qc->err_mask &= ~(AC_ERR_DEV | AC_ERR_OTHER); |
2029 | 2029 | ||
2030 | /* determine whether the command is worth retrying */ | 2030 | /* determine whether the command is worth retrying */ |
2031 | if (!(qc->err_mask & AC_ERR_INVALID) && | 2031 | if (qc->flags & ATA_QCFLAG_IO || |
2032 | ((qc->flags & ATA_QCFLAG_IO) || qc->err_mask != AC_ERR_DEV)) | 2032 | (!(qc->err_mask & AC_ERR_INVALID) && |
2033 | qc->err_mask != AC_ERR_DEV)) | ||
2033 | qc->flags |= ATA_QCFLAG_RETRY; | 2034 | qc->flags |= ATA_QCFLAG_RETRY; |
2034 | 2035 | ||
2035 | /* accumulate error info */ | 2036 | /* accumulate error info */ |