Skip to contentSkip to conversation

: scsi_error: interruptible scsi_block_when_processing_errors()

RFC Douglas Gilbert 1 participant 1 message Oct 23, 2013 SCSI

lore
Share & tools
lore
#0 lore raw

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