On Tue, Nov 04, 2014 at 01:11:11PM +0100, Hannes Reinecke wrote: > BLK_EH_HANDLED does not work with scsi commands, as we need > to release the associated buffers correctly. Which particular error do you see? The ->eh_timed_out routines can return BLK_EH_HANDLED, and libata, iscsi and fc actually do, so we'll need to fix these issues either way. > And scsi_eh_scmd_add() currently only will fail if no > error handler thread is started (which will never be the > case) Yes. > or if the state machine encounters an illegal transition. > As state machine transitions don't have any real meaning > we can also force setting of the new state and > make scsi_dh_scmd_add() a void function. > With that we'll never have to resort to return > BLK_EH_HANDLED. Which kind of transition did you see rejected? Neither a CREATED or DEL_(RECOVERY) state should be possible when invoking the error handler, so I'd rather see asserts here than overriding the state machine. te RECOVERY state from a RUNNING or existing RECOVERY state, which leaves CREATED, CANCEL, DEL, CANCEL_RECOVERY or DEL_RECOVERY. -- 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