Remove redundant code in iscsi_service()

This commit is contained in:
Peter Lieven
2012-10-20 19:00:32 +02:00
parent 881fc9743a
commit 3f5a75ce5e

View File

@@ -439,6 +439,17 @@ iscsi_write_to_socket(struct iscsi_context *iscsi)
return 0; return 0;
} }
int inline
iscsi_service_reconnect_if_loggedin(struct iscsi_context *iscsi)
{
if (iscsi->is_loggedin) {
if (iscsi_reconnect(iscsi) == 0) {
return 0;
}
}
return -1;
}
int int
iscsi_service(struct iscsi_context *iscsi, int revents) iscsi_service(struct iscsi_context *iscsi, int revents)
{ {
@@ -460,24 +471,14 @@ iscsi_service(struct iscsi_context *iscsi, int revents)
} }
iscsi->socket_status_cb(iscsi, SCSI_STATUS_ERROR, NULL, iscsi->socket_status_cb(iscsi, SCSI_STATUS_ERROR, NULL,
iscsi->connect_data); iscsi->connect_data);
if (iscsi->is_loggedin) { return iscsi_service_reconnect_if_loggedin(iscsi);
if (iscsi_reconnect(iscsi) == 0) {
return 0;
}
}
return -1;
} }
if (revents & POLLHUP) { if (revents & POLLHUP) {
iscsi_set_error(iscsi, "iscsi_service: POLLHUP, " iscsi_set_error(iscsi, "iscsi_service: POLLHUP, "
"socket error."); "socket error.");
iscsi->socket_status_cb(iscsi, SCSI_STATUS_ERROR, NULL, iscsi->socket_status_cb(iscsi, SCSI_STATUS_ERROR, NULL,
iscsi->connect_data); iscsi->connect_data);
if (iscsi->is_loggedin) { return iscsi_service_reconnect_if_loggedin(iscsi);
if (iscsi_reconnect(iscsi) == 0) {
return 0;
}
}
return -1;
} }
if (iscsi->is_connected == 0 && iscsi->fd != -1 && revents&POLLOUT) { if (iscsi->is_connected == 0 && iscsi->fd != -1 && revents&POLLOUT) {
@@ -493,12 +494,7 @@ iscsi_service(struct iscsi_context *iscsi, int revents)
strerror(err), err); strerror(err), err);
iscsi->socket_status_cb(iscsi, SCSI_STATUS_ERROR, iscsi->socket_status_cb(iscsi, SCSI_STATUS_ERROR,
NULL, iscsi->connect_data); NULL, iscsi->connect_data);
if (iscsi->is_loggedin) { return iscsi_service_reconnect_if_loggedin(iscsi);
if (iscsi_reconnect(iscsi) == 0) {
return 0;
}
}
return -1;
} }
DPRINTF(iscsi,2,"connection to %s established",iscsi->connected_portal); DPRINTF(iscsi,2,"connection to %s established",iscsi->connected_portal);
@@ -511,22 +507,12 @@ iscsi_service(struct iscsi_context *iscsi, int revents)
if (revents & POLLOUT && iscsi->outqueue != NULL) { if (revents & POLLOUT && iscsi->outqueue != NULL) {
if (iscsi_write_to_socket(iscsi) != 0) { if (iscsi_write_to_socket(iscsi) != 0) {
if (iscsi->is_loggedin) { return iscsi_service_reconnect_if_loggedin(iscsi);
if (iscsi_reconnect(iscsi) == 0) {
return 0;
}
}
return -1;
} }
} }
if (revents & POLLIN) { if (revents & POLLIN) {
if (iscsi_read_from_socket(iscsi) != 0) { if (iscsi_read_from_socket(iscsi) != 0) {
if (iscsi->is_loggedin) { return iscsi_service_reconnect_if_loggedin(iscsi);
if (iscsi_reconnect(iscsi) == 0) {
return 0;
}
}
return -1;
} }
} }