On Mon, Jul 16, 2012 at 4:08 PM, Nicholas A. Bellinger <nab@xxxxxxxxxxxxxxx> wrote: > However, I'm still leaning towards a way to do this for tcm_qla2xxx that > does not require all fabric callers to handle target_submit_cmd() > exceptions directly.. > > How about a special target_get_sess_cmd() failure callback to free > se_cmd when target_get_sess_cmd() fails, but not actually send a SCSI > response back out to the fabric here during session shutdown..? I guess that's OK, although I'm not sure it ends up being cleaner. If you look at my 4/7 patch, you see that all target_submit_cmd callers have an error path where they handle terminating commands that fail processing just before calling submit_cmd anyway. eg for qla2xxx we'll need a callback to call qlt_send_term_exchange() in addition to the error path call that qlt_do_work() has anyway. Similarly tcm_fc ends up with a second call to ft_send_resp_code_and_free(). etc. But I don't really have a strong feeling about this, if the view is that submit_cmd() should never return failure directly then I'm OK with that. > That said, I'm going to commit this patch (slightly changed to keep > target_submit_cmd() returning void for now) but I'd still like a better > way of handling this particular failure without propagating up the > return value. OK, I'll take a look at how you handle this... - R. -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html