On Mon, 18 March 2013 18:30:30 -0400, Jörn Engel wrote: > > As the comment sais, this allows Solaris initiators to survive > intermittent errors. The comment from someone reading the Solaris > sources seem to imply that multipathing would be broken without this > patch as well. > > Signed-off-by: Joern Engel <joern@xxxxxxxxx> > Cc: Brian Bunker <brian@xxxxxxxxxxxxxxx> Forgot to Cc: Brian. He is responsible for all the good parts in this patch. > --- > drivers/target/target_core_transport.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c > index bd587b7..04ec9cb 100644 > --- a/drivers/target/target_core_transport.c > +++ b/drivers/target/target_core_transport.c > @@ -2750,8 +2750,13 @@ transport_send_check_condition_and_sense(struct se_cmd *cmd, > /* CURRENT ERROR */ > buffer[0] = 0x70; > buffer[SPC_ADD_SENSE_LEN_OFFSET] = 10; > - /* ILLEGAL REQUEST */ > - buffer[SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; > + /* > + * Returning ILLEGAL REQUEST would cause immediate IO errors on > + * Solaris initiators. Returning NOT READY instead means the > + * operations will be retried a finite number of times and we > + * can survive intermittent errors. > + */ > + buffer[SPC_SENSE_KEY_OFFSET] = NOT_READY; > /* LOGICAL UNIT COMMUNICATION FAILURE */ > buffer[SPC_ASC_KEY_OFFSET] = 0x08; > break; > -- > 1.7.10.4 > Jörn -- The rabbit runs faster than the fox, because the rabbit is rinning for his life while the fox is only running for his dinner. -- Aesop -- 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