sleeping in scsi EH

Jeff Garzik
2005-05-27T02:26:47Z

What are the rules for sleeping (msleep, etc.) in the normal EH hooks?

int (* eh_abort_handler)(struct scsi_cmnd *);
int (* eh_device_reset_handler)(struct scsi_cmnd *);
int (* eh_bus_reset_handler)(struct scsi_cmnd *);
int (* eh_host_reset_handler)(struct scsi_cmnd *);

If I could sleep in these functions, then I could eliminate libata's use
of ->eh_strategy_handler().

Jeff