From 5f92869d2948588fc7d3d956f7a7d358b6257c8c Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Fri, 16 Oct 2009 13:00:51 +0900 Subject: [PATCH] --- yaml --- r: 167644 b: refs/heads/master c: f4b31db92d163df8a639f5a8c8633bdeb6e8432d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/ata/libata-core.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index b25d830bc5b2..1e0890f23ea0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4f7c2874995ac48a4622755b8bd159eb2fb6d8f4 +refs/heads/master: f4b31db92d163df8a639f5a8c8633bdeb6e8432d diff --git a/trunk/drivers/ata/libata-core.c b/trunk/drivers/ata/libata-core.c index b525a0981348..d7f0f1b1ae3e 100644 --- a/trunk/drivers/ata/libata-core.c +++ b/trunk/drivers/ata/libata-core.c @@ -5028,12 +5028,14 @@ void ata_qc_complete(struct ata_queued_cmd *qc) qc->flags |= ATA_QCFLAG_FAILED; if (unlikely(qc->flags & ATA_QCFLAG_FAILED)) { - if (!ata_tag_internal(qc->tag)) { - /* always fill result TF for failed qc */ - fill_result_tf(qc); + /* always fill result TF for failed qc */ + fill_result_tf(qc); + + if (!ata_tag_internal(qc->tag)) ata_qc_schedule_eh(qc); - return; - } + else + __ata_qc_complete(qc); + return; } WARN_ON_ONCE(ap->pflags & ATA_PFLAG_FROZEN);