aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-scsi.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-09-30 05:07:17 -0400
committerJeff Garzik <jeff@garzik.org>2006-12-01 22:40:29 -0500
commit309afcb5c87b5a41da51cc0c36f61c0e0d43ca9a (patch)
tree21566a73f25ec3b91163c5a0ba0252e7079c7370 /drivers/ata/libata-scsi.c
parent722420fe6e2ab63bebc5a9ea346016b59076d75d (diff)
[PATCH] libata: make user scan wait for scan to complete
Make user scan wait for scan to complete. This way user can wait for warm plug request to complete and is prevented from causing EH event storm by repetitively issuing scan request while EH is in progress. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Fajun Chen <fajunchen@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/libata-scsi.c')
-rw-r--r--drivers/ata/libata-scsi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 47ea111d5ac..6b2553dae48 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -3182,10 +3182,12 @@ static int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel,
3182 rc = -EINVAL; 3182 rc = -EINVAL;
3183 } 3183 }
3184 3184
3185 if (rc == 0) 3185 if (rc == 0) {
3186 ata_port_schedule_eh(ap); 3186 ata_port_schedule_eh(ap);
3187 3187 spin_unlock_irqrestore(ap->lock, flags);
3188 spin_unlock_irqrestore(ap->lock, flags); 3188 ata_port_wait_eh(ap);
3189 } else
3190 spin_unlock_irqrestore(ap->lock, flags);
3189 3191
3190 return rc; 3192 return rc;
3191} 3193}