diff options
author | Varun Prakash <varun@chelsio.com> | 2016-04-19 14:30:12 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2016-05-10 02:12:08 -0400 |
commit | 42bc3e57877f2357ccbbc3ad6e6c7d9be44579f9 (patch) | |
tree | f8866f9683073031554ec3e7ff1f28741734c14f | |
parent | e8205cca0abd126418c18030fb8c9ef272080d70 (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.c | 10 | ||||
-rw-r--r-- | include/target/iscsi/iscsi_transport.h | 1 |
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 | ||