The existing scsi_block_when_processing_errors() function in scsi_error.c does a non-interruptible wait on the host_wait work queue. That call is made from many places in the scsi subsystem ULDs (e.g. the sg driver). In many cases (e.g. sg_open()) there is a direct path back to the user space. So why hang open(sg_device) calls (that don't use O_NONBLOCK) in an non-interruptible call for what might be a long time. Apart from signal indications, such a non-interruptible version of scsi_block_when_processing_errors() could return useful (possibly negated) errno_s, for example indicating the device in question had been detached or timed out (possibly because the HBA was being reset). Thoughts? Doug Gilbert -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html