summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-eh.c
diff options
context:
space:
mode:
authorTejun Heo2006-06-12 07:11:43 +0200
committerJeff Garzik2006-06-12 08:10:26 +0200
commitaeb2ecd6096182cc080d37679080c0f088dcd4a4 (patch)
tree8e103a541f59c8a31656666352a4d5ea10c00088 /drivers/scsi/libata-eh.c
parent[PATCH] libata: fix ATA_EH_REVALIDATE clearing (diff)
downloadkernel-qcow2-linux-aeb2ecd6096182cc080d37679080c0f088dcd4a4.tar.gz
kernel-qcow2-linux-aeb2ecd6096182cc080d37679080c0f088dcd4a4.tar.xz
kernel-qcow2-linux-aeb2ecd6096182cc080d37679080c0f088dcd4a4.zip
[PATCH] libata: fast exit from EH while unloading
Make EH exit fast if the port is being unloaded. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi/libata-eh.c')
-rw-r--r--drivers/scsi/libata-eh.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/libata-eh.c b/drivers/scsi/libata-eh.c
index 782dfba573a9..531a4e11c078 100644
--- a/drivers/scsi/libata-eh.c
+++ b/drivers/scsi/libata-eh.c
@@ -1680,6 +1680,10 @@ static int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
down_xfermask = 0;
rc = 0;
+ /* if UNLOADING, finish immediately */
+ if (ap->flags & ATA_FLAG_UNLOADING)
+ goto out;
+
/* skip EH if possible. */
if (ata_eh_skip_recovery(ap))
ehc->i.action = 0;