Libiscsi: Adding disconnect function to transport abstraction

all library: change disconnect to iscsi->t->disconnect

1. In TCP we need only to put -1 in fd and we don't
have more transport resources. In future iSER we will need to
clean resources and destroy the rdma connection.

Signed-off-by: Roy Shterman <roysh@mellanox.com>
This commit is contained in:
Roy Shterman
2016-05-27 18:47:19 +03:00
committed by Ronnie Sahlberg
parent bc64420bad
commit dff69584e0
2 changed files with 10 additions and 2 deletions

View File

@@ -391,6 +391,7 @@ struct iscsi_transport {
int (*connect)(struct iscsi_context *iscsi, union socket_address *sa, int ai_family);
int (*queue_pdu)(struct iscsi_context *iscsi, struct iscsi_pdu *pdu);
struct iscsi_pdu* (*new_pdu)(struct iscsi_context *iscsi, size_t size);
int (*disconnect)(struct iscsi_context *iscsi);
};
struct tcp_transport {

View File

@@ -367,8 +367,8 @@ iscsi_connect_async(struct iscsi_context *iscsi, const char *portal,
return 0;
}
int
iscsi_disconnect(struct iscsi_context *iscsi)
static int
iscsi_tcp_disconnect(struct iscsi_context *iscsi)
{
if (iscsi->fd == -1) {
iscsi_set_error(iscsi, "Trying to disconnect "
@@ -390,6 +390,12 @@ iscsi_disconnect(struct iscsi_context *iscsi)
return 0;
}
int
iscsi_disconnect(struct iscsi_context *iscsi)
{
return iscsi->t->disconnect(iscsi);
}
int
iscsi_get_fd(struct iscsi_context *iscsi)
{
@@ -1058,6 +1064,7 @@ void iscsi_init_tcp_transport(struct iscsi_context *iscsi)
iscsi->t->connect = iscsi_tcp_connect;
iscsi->t->queue_pdu = iscsi_tcp_queue_pdu;
iscsi->t->new_pdu = iscsi_tcp_new_pdu;
iscsi->t->disconnect = iscsi_tcp_disconnect;
return;
}