From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> This patch changes iscsi_set_keys_irrelevant_for_discovery() parameter usage to allow INITIATORRECVDATASEGMENTLENGTH + TARGETRECVDATASEGMENTLENGTH keys to be negotiated during in-band iser send-targets discovery. Cc: Or Gerlitz <ogerlitz@xxxxxxxxxxxx> Cc: Mike Christie <michaelc@xxxxxxxxxxx> Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> --- drivers/target/iscsi/iscsi_target_login.c | 2 +- drivers/target/iscsi/iscsi_target_parameters.c | 12 +++++++++--- drivers/target/iscsi/iscsi_target_parameters.h | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c index bb5d5c5..f42eb84 100644 --- a/drivers/target/iscsi/iscsi_target_login.c +++ b/drivers/target/iscsi/iscsi_target_login.c @@ -369,7 +369,7 @@ static int iscsi_login_zero_tsih_s2( if (sess->sess_ops->SessionType) return iscsi_set_keys_irrelevant_for_discovery( - conn->param_list); + conn->param_list, iser); na = iscsit_tpg_get_node_attrib(sess); diff --git a/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_target_parameters.c index e382221..0b8c819 100644 --- a/drivers/target/iscsi/iscsi_target_parameters.c +++ b/drivers/target/iscsi/iscsi_target_parameters.c @@ -545,7 +545,8 @@ int iscsi_set_keys_to_negotiate( } int iscsi_set_keys_irrelevant_for_discovery( - struct iscsi_param_list *param_list) + struct iscsi_param_list *param_list, + bool iser) { struct iscsi_param *param; @@ -582,10 +583,15 @@ int iscsi_set_keys_irrelevant_for_discovery( param->state &= ~PSTATE_NEGOTIATE; else if (!strcmp(param->name, RDMAEXTENSIONS)) param->state &= ~PSTATE_NEGOTIATE; - else if (!strcmp(param->name, INITIATORRECVDATASEGMENTLENGTH)) + else if (!strcmp(param->name, INITIATORRECVDATASEGMENTLENGTH)) { + if (!iser) + continue; param->state &= ~PSTATE_NEGOTIATE; - else if (!strcmp(param->name, TARGETRECVDATASEGMENTLENGTH)) + } else if (!strcmp(param->name, TARGETRECVDATASEGMENTLENGTH)) { + if (!iser) + continue; param->state &= ~PSTATE_NEGOTIATE; + } } return 0; diff --git a/drivers/target/iscsi/iscsi_target_parameters.h b/drivers/target/iscsi/iscsi_target_parameters.h index a47046a..76d2fdf 100644 --- a/drivers/target/iscsi/iscsi_target_parameters.h +++ b/drivers/target/iscsi/iscsi_target_parameters.h @@ -30,7 +30,7 @@ extern void iscsi_dump_sess_ops(struct iscsi_sess_ops *); extern void iscsi_print_params(struct iscsi_param_list *); extern int iscsi_create_default_params(struct iscsi_param_list **); extern int iscsi_set_keys_to_negotiate(struct iscsi_param_list *, bool); -extern int iscsi_set_keys_irrelevant_for_discovery(struct iscsi_param_list *); +extern int iscsi_set_keys_irrelevant_for_discovery(struct iscsi_param_list *, bool); extern int iscsi_copy_param_list(struct iscsi_param_list **, struct iscsi_param_list *, int); extern int iscsi_change_param_value(char *, struct iscsi_param_list *, int); -- 1.7.2.5 -- 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