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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to