浏览代码

[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>
Tejun Heo 18 年之前
父节点
当前提交
309afcb5c8
共有 1 个文件被更改,包括 5 次插入3 次删除
  1. 5 3
      drivers/ata/libata-scsi.c

+ 5 - 3
drivers/ata/libata-scsi.c

@@ -3182,10 +3182,12 @@ static int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel,
 			rc = -EINVAL;
 			rc = -EINVAL;
 	}
 	}
 
 
-	if (rc == 0)
+	if (rc == 0) {
 		ata_port_schedule_eh(ap);
 		ata_port_schedule_eh(ap);
-
-	spin_unlock_irqrestore(ap->lock, flags);
+		spin_unlock_irqrestore(ap->lock, flags);
+		ata_port_wait_eh(ap);
+	} else
+		spin_unlock_irqrestore(ap->lock, flags);
 
 
 	return rc;
 	return rc;
 }
 }