diff options
| author | Tejun Heo <htejun@gmail.com> | 2006-05-31 05:27:27 -0400 |
|---|---|---|
| committer | Tejun Heo <htejun@gmail.com> | 2006-05-31 05:27:27 -0400 |
| commit | c6cf9e99d1de5ca6a08fb639bb73031ffe50d802 (patch) | |
| tree | 555a47d45b5b80ef14ff53ccb4c6d1439460e251 /include/linux | |
| parent | 7395acb2c840fd4d0cacc91d6fb71440057141ab (diff) | |
[PATCH] libata: implement ata_eh_wait()
Implement ata_eh_wait(). On return from this function, it's
guaranteed that the EH which was pending or in progress when the
function was called is complete - including the tailing part of SCSI
EH. This will be used by hotplug and others to synchronize with EH.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/libata.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 3f9c65f1aafa..2eb5828839e4 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -157,6 +157,7 @@ enum { | |||
| 157 | ATA_FLAG_FLUSH_PORT_TASK = (1 << 14), /* flush port task */ | 157 | ATA_FLAG_FLUSH_PORT_TASK = (1 << 14), /* flush port task */ |
| 158 | 158 | ||
| 159 | ATA_FLAG_EH_PENDING = (1 << 15), /* EH pending */ | 159 | ATA_FLAG_EH_PENDING = (1 << 15), /* EH pending */ |
| 160 | ATA_FLAG_EH_IN_PROGRESS = (1 << 16), /* EH in progress */ | ||
| 160 | ATA_FLAG_FROZEN = (1 << 17), /* port is frozen */ | 161 | ATA_FLAG_FROZEN = (1 << 17), /* port is frozen */ |
| 161 | ATA_FLAG_RECOVERED = (1 << 18), /* recovery action performed */ | 162 | ATA_FLAG_RECOVERED = (1 << 18), /* recovery action performed */ |
| 162 | 163 | ||
| @@ -490,6 +491,7 @@ struct ata_port { | |||
| 490 | 491 | ||
| 491 | u32 msg_enable; | 492 | u32 msg_enable; |
| 492 | struct list_head eh_done_q; | 493 | struct list_head eh_done_q; |
| 494 | wait_queue_head_t eh_wait_q; | ||
| 493 | 495 | ||
| 494 | void *private_data; | 496 | void *private_data; |
| 495 | 497 | ||
