summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/cam/ctl/ctl_frontend_iscsi.c1
-rw-r--r--sys/dev/iscsi/icl.c27
-rw-r--r--sys/dev/iscsi/icl.h1
-rw-r--r--sys/dev/iscsi/iscsi.c1
4 files changed, 5 insertions, 25 deletions
diff --git a/sys/cam/ctl/ctl_frontend_iscsi.c b/sys/cam/ctl/ctl_frontend_iscsi.c
index d7f5c7a..448cc73 100644
--- a/sys/cam/ctl/ctl_frontend_iscsi.c
+++ b/sys/cam/ctl/ctl_frontend_iscsi.c
@@ -1135,7 +1135,6 @@ cfiscsi_maintenance_thread(void *arg)
* that anymore. We might need to revisit that.
*/
callout_drain(&cs->cs_callout);
- icl_conn_shutdown(cs->cs_conn);
icl_conn_close(cs->cs_conn);
/*
diff --git a/sys/dev/iscsi/icl.c b/sys/dev/iscsi/icl.c
index 16652aa..5a6436a 100644
--- a/sys/dev/iscsi/icl.c
+++ b/sys/dev/iscsi/icl.c
@@ -873,8 +873,6 @@ icl_conn_send_pdus(struct icl_conn *ic, struct icl_pdu_stailq *queue)
SOCKBUF_UNLOCK(&so->so_snd);
while (!STAILQ_EMPTY(queue)) {
- if (ic->ic_disconnecting)
- return;
request = STAILQ_FIRST(queue);
size = icl_pdu_size(request);
if (available < size) {
@@ -971,11 +969,6 @@ icl_send_thread(void *arg)
ic->ic_send_running = true;
for (;;) {
- if (ic->ic_disconnecting) {
- //ICL_DEBUG("terminating");
- break;
- }
-
for (;;) {
/*
* If the local queue is empty, populate it from
@@ -1014,6 +1007,11 @@ icl_send_thread(void *arg)
break;
}
+ if (ic->ic_disconnecting) {
+ //ICL_DEBUG("terminating");
+ break;
+ }
+
cv_wait(&ic->ic_send_cv, ic->ic_lock);
}
@@ -1298,21 +1296,6 @@ icl_conn_handoff(struct icl_conn *ic, int fd)
}
void
-icl_conn_shutdown(struct icl_conn *ic)
-{
- ICL_CONN_LOCK_ASSERT_NOT(ic);
-
- ICL_CONN_LOCK(ic);
- if (ic->ic_socket == NULL) {
- ICL_CONN_UNLOCK(ic);
- return;
- }
- ICL_CONN_UNLOCK(ic);
-
- soshutdown(ic->ic_socket, SHUT_RDWR);
-}
-
-void
icl_conn_close(struct icl_conn *ic)
{
struct icl_pdu *pdu;
diff --git a/sys/dev/iscsi/icl.h b/sys/dev/iscsi/icl.h
index 5f03434..ca5ee8f 100644
--- a/sys/dev/iscsi/icl.h
+++ b/sys/dev/iscsi/icl.h
@@ -107,7 +107,6 @@ struct icl_conn {
struct icl_conn *icl_conn_new(const char *name, struct mtx *lock);
void icl_conn_free(struct icl_conn *ic);
int icl_conn_handoff(struct icl_conn *ic, int fd);
-void icl_conn_shutdown(struct icl_conn *ic);
void icl_conn_close(struct icl_conn *ic);
bool icl_conn_connected(struct icl_conn *ic);
diff --git a/sys/dev/iscsi/iscsi.c b/sys/dev/iscsi/iscsi.c
index e11b2b6..1576f7d 100644
--- a/sys/dev/iscsi/iscsi.c
+++ b/sys/dev/iscsi/iscsi.c
@@ -367,7 +367,6 @@ static void
iscsi_maintenance_thread_reconnect(struct iscsi_session *is)
{
- icl_conn_shutdown(is->is_conn);
icl_conn_close(is->is_conn);
ISCSI_SESSION_LOCK(is);
OpenPOWER on IntegriCloud