abstract transport to static driver functions and opaque driver specific information.

This splits a transport into static driver specific functions for the common
iscsi commands. Optionally, a driver specific opaque memory is introduced
which is currently only used by iSER transport.
Last a lot of functions changed to static.

Signed-off-by: Peter Lieven <pl@kamp.de>
This commit is contained in:
Peter Lieven
2016-08-05 11:28:43 +02:00
parent df1dc08eb7
commit fa123fc397
12 changed files with 159 additions and 214 deletions

View File

@@ -852,14 +852,14 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
/* initiator name */
if (iscsi_login_add_initiatorname(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* optional alias */
if (iscsi->alias[0]) {
if (iscsi_login_add_alias(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
}
@@ -867,134 +867,134 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
/* target name */
if (iscsi->session_type == ISCSI_SESSION_NORMAL) {
if (iscsi_login_add_targetname(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
}
/* session type */
if (iscsi_login_add_sessiontype(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* header digest */
if (iscsi_login_add_headerdigest(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* auth method */
if (iscsi_login_add_authmethod(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* auth algorithm */
if (iscsi_login_add_authalgorithm(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* chap username */
if (iscsi_login_add_chap_username(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* chap response */
if (iscsi_login_add_chap_response(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* data digest */
if (iscsi_login_add_datadigest(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* initial r2t */
if (iscsi_login_add_initialr2t(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* immediate data */
if (iscsi_login_add_immediatedata(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* max burst length */
if (iscsi_login_add_maxburstlength(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* first burst length */
if (iscsi_login_add_firstburstlength(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* default time 2 wait */
if (iscsi_login_add_defaulttime2wait(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* default time 2 retain */
if (iscsi_login_add_defaulttime2retain(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* max outstanding r2t */
if (iscsi_login_add_maxoutstandingr2t(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* errorrecoverylevel */
if (iscsi_login_add_errorrecoverylevel(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* ifmarker */
if (iscsi_login_add_ifmarker(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* ofmarker */
if (iscsi_login_add_ofmarker(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* maxconnections */
if (iscsi_login_add_maxconnections(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* max recv data segment length */
if (iscsi_login_add_maxrecvdatasegmentlength(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* data pdu in order */
if (iscsi_login_add_datapduinorder(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
/* data sequence in order */
if (iscsi_login_add_datasequenceinorder(iscsi, pdu) != 0) {
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
@@ -1005,7 +1005,7 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
if (iscsi_queue_pdu(iscsi, pdu) != 0) {
iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi "
"pdu.");
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}
@@ -1322,7 +1322,7 @@ iscsi_logout_async(struct iscsi_context *iscsi, iscsi_command_cb cb,
if (iscsi_queue_pdu(iscsi, pdu) != 0) {
iscsi_set_error(iscsi, "Out-of-memory: failed to queue iscsi "
"logout pdu.");
iscsi->t->free_pdu(iscsi, pdu);
iscsi->drv->free_pdu(iscsi, pdu);
return -1;
}