aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVarun Prakash <varun@chelsio.com>2016-04-19 14:30:12 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2016-05-10 02:12:08 -0400
commit42bc3e57877f2357ccbbc3ad6e6c7d9be44579f9 (patch)
treef8866f9683073031554ec3e7ff1f28741734c14f
parente8205cca0abd126418c18030fb8c9ef272080d70 (diff)
iscsi-target: add int (*iscsit_validate_params)()
Add int (*iscsit_validate_params)() to struct iscsit_transport, iscsi-target uses this callback for validating conn operational parameters. cxgbit.ko needs this callback to check and update the value of MAXXMITDATASEGMENTLENGTH. Signed-off-by: Varun Prakash <varun@chelsio.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r--drivers/target/iscsi/iscsi_target_login.c10
-rw-r--r--include/target/iscsi/iscsi_transport.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
index 8436d56c5f0c..83574eea0be7 100644
--- a/drivers/target/iscsi/iscsi_target_login.c
+++ b/drivers/target/iscsi/iscsi_target_login.c
@@ -1387,6 +1387,16 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
1387 goto old_sess_out; 1387 goto old_sess_out;
1388 } 1388 }
1389 1389
1390 if (conn->conn_transport->iscsit_validate_params) {
1391 ret = conn->conn_transport->iscsit_validate_params(conn);
1392 if (ret < 0) {
1393 if (zero_tsih)
1394 goto new_sess_out;
1395 else
1396 goto old_sess_out;
1397 }
1398 }
1399
1390 ret = iscsi_target_start_negotiation(login, conn); 1400 ret = iscsi_target_start_negotiation(login, conn);
1391 if (ret < 0) 1401 if (ret < 0)
1392 goto new_sess_out; 1402 goto new_sess_out;
diff --git a/include/target/iscsi/iscsi_transport.h b/include/target/iscsi/iscsi_transport.h
index ccc68a0334c2..46aa219be1ae 100644
--- a/include/target/iscsi/iscsi_transport.h
+++ b/include/target/iscsi/iscsi_transport.h
@@ -26,6 +26,7 @@ struct iscsit_transport {
26 struct iscsi_datain_req *, const void *, u32); 26 struct iscsi_datain_req *, const void *, u32);
27 void (*iscsit_release_cmd)(struct iscsi_conn *, struct iscsi_cmd *); 27 void (*iscsit_release_cmd)(struct iscsi_conn *, struct iscsi_cmd *);
28 void (*iscsit_get_rx_pdu)(struct iscsi_conn *); 28 void (*iscsit_get_rx_pdu)(struct iscsi_conn *);
29 int (*iscsit_validate_params)(struct iscsi_conn *);
29 enum target_prot_op (*iscsit_get_sup_prot_ops)(struct iscsi_conn *); 30 enum target_prot_op (*iscsit_get_sup_prot_ops)(struct iscsi_conn *);
30}; 31};
31 32