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:
committed by
Ronnie Sahlberg
parent
bc64420bad
commit
dff69584e0
@@ -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 {
|
||||
|
||||
11
lib/socket.c
11
lib/socket.c
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user