diff options
author | Ed L. Cashin <ecashin@coraid.com> | 2006-02-07 11:37:24 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-24 01:01:57 -0500 |
commit | 9d41965b783474dba9fcf3eb02e5eb60540e6ff6 (patch) | |
tree | 1780a39793a83087aaa3b2ea9db1ddd653d875d1 | |
parent | 5dc401ee74c5d6a24867acd8302c55da9ae4f0ce (diff) |
[PATCH] aoe [2/3]: don't request ATA device ID on ATA error
On an ATA error response, take the device down instead of
sending another ATA device identify command.
Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com>
-rw-r--r-- | drivers/block/aoe/aoecmd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index 207aabcd1f4e..39da28d344fe 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c | |||
@@ -517,6 +517,8 @@ aoecmd_ata_rsp(struct sk_buff *skb) | |||
517 | ahout = (struct aoe_atahdr *) (f->data + sizeof(struct aoe_hdr)); | 517 | ahout = (struct aoe_atahdr *) (f->data + sizeof(struct aoe_hdr)); |
518 | buf = f->buf; | 518 | buf = f->buf; |
519 | 519 | ||
520 | if (ahout->cmdstat == WIN_IDENTIFY) | ||
521 | d->flags &= ~DEVFL_PAUSE; | ||
520 | if (ahin->cmdstat & 0xa9) { /* these bits cleared on success */ | 522 | if (ahin->cmdstat & 0xa9) { /* these bits cleared on success */ |
521 | printk(KERN_CRIT "aoe: aoecmd_ata_rsp: ata error cmd=%2.2Xh " | 523 | printk(KERN_CRIT "aoe: aoecmd_ata_rsp: ata error cmd=%2.2Xh " |
522 | "stat=%2.2Xh from e%ld.%ld\n", | 524 | "stat=%2.2Xh from e%ld.%ld\n", |
@@ -549,7 +551,6 @@ aoecmd_ata_rsp(struct sk_buff *skb) | |||
549 | return; | 551 | return; |
550 | } | 552 | } |
551 | ataid_complete(d, (char *) (ahin+1)); | 553 | ataid_complete(d, (char *) (ahin+1)); |
552 | d->flags &= ~DEVFL_PAUSE; | ||
553 | break; | 554 | break; |
554 | default: | 555 | default: |
555 | printk(KERN_INFO "aoe: aoecmd_ata_rsp: unrecognized " | 556 | printk(KERN_INFO "aoe: aoecmd_ata_rsp: unrecognized " |