Author: trasz
Date: Fri Apr  4 08:43:23 2014
New Revision: 264109
URL: http://svnweb.freebsd.org/changeset/base/264109

Log:
  We don't need TAILQ for iSCSI PDUs; STAILQ is enough.
  
  Sponsored by: The FreeBSD Foundation

Modified:
  head/sys/dev/iscsi/icl.c
  head/sys/dev/iscsi/icl.h
  head/sys/dev/iscsi/iscsi.c
  head/sys/dev/iscsi/iscsi.h

Modified: head/sys/dev/iscsi/icl.c
==============================================================================
--- head/sys/dev/iscsi/icl.c    Fri Apr  4 07:43:11 2014        (r264108)
+++ head/sys/dev/iscsi/icl.c    Fri Apr  4 08:43:23 2014        (r264109)
@@ -854,11 +854,11 @@ icl_conn_send_pdus(struct icl_conn *ic)
        available = sbspace(&so->so_snd);
        SOCKBUF_UNLOCK(&so->so_snd);
 
-       while (!TAILQ_EMPTY(&ic->ic_to_send)) {
+       while (!STAILQ_EMPTY(&ic->ic_to_send)) {
                if (ic->ic_disconnecting)
                        return;
 
-               request = TAILQ_FIRST(&ic->ic_to_send);
+               request = STAILQ_FIRST(&ic->ic_to_send);
                size = icl_pdu_size(request);
                if (available < size) {
                        /*
@@ -877,7 +877,7 @@ icl_conn_send_pdus(struct icl_conn *ic)
                        return;
                }
                available -= size;
-               TAILQ_REMOVE(&ic->ic_to_send, request, ip_next);
+               STAILQ_REMOVE_HEAD(&ic->ic_to_send, ip_next);
                error = icl_pdu_send(request);
                if (error != 0) {
                        ICL_DEBUG("failed to send PDU; "
@@ -977,7 +977,7 @@ icl_pdu_queue(struct icl_pdu *ip)
                icl_pdu_free(ip);
                return;
        }
-       TAILQ_INSERT_TAIL(&ic->ic_to_send, ip, ip_next);
+       STAILQ_INSERT_TAIL(&ic->ic_to_send, ip, ip_next);
        cv_signal(&ic->ic_send_cv);
 }
 
@@ -990,7 +990,7 @@ icl_conn_new(const char *name, struct mt
 
        ic = uma_zalloc(icl_conn_zone, M_WAITOK | M_ZERO);
 
-       TAILQ_INIT(&ic->ic_to_send);
+       STAILQ_INIT(&ic->ic_to_send);
        ic->ic_lock = lock;
        cv_init(&ic->ic_send_cv, "icl_tx");
        cv_init(&ic->ic_receive_cv, "icl_rx");
@@ -1217,13 +1217,13 @@ icl_conn_close(struct icl_conn *ic)
        /*
         * Remove any outstanding PDUs from the send queue.
         */
-       while (!TAILQ_EMPTY(&ic->ic_to_send)) {
-               pdu = TAILQ_FIRST(&ic->ic_to_send);
-               TAILQ_REMOVE(&ic->ic_to_send, pdu, ip_next);
+       while (!STAILQ_EMPTY(&ic->ic_to_send)) {
+               pdu = STAILQ_FIRST(&ic->ic_to_send);
+               STAILQ_REMOVE_HEAD(&ic->ic_to_send, ip_next);
                icl_pdu_free(pdu);
        }
 
-       KASSERT(TAILQ_EMPTY(&ic->ic_to_send),
+       KASSERT(STAILQ_EMPTY(&ic->ic_to_send),
            ("destroying session with non-empty send queue"));
 #ifdef DIAGNOSTIC
        KASSERT(ic->ic_outstanding_pdus == 0,

Modified: head/sys/dev/iscsi/icl.h
==============================================================================
--- head/sys/dev/iscsi/icl.h    Fri Apr  4 07:43:11 2014        (r264108)
+++ head/sys/dev/iscsi/icl.h    Fri Apr  4 08:43:23 2014        (r264109)
@@ -40,7 +40,7 @@
 struct icl_conn;
 
 struct icl_pdu {
-       TAILQ_ENTRY(icl_pdu)    ip_next;
+       STAILQ_ENTRY(icl_pdu)   ip_next;
        struct icl_conn         *ip_conn;
        struct iscsi_bhs        *ip_bhs;
        struct mbuf             *ip_bhs_mbuf;
@@ -79,7 +79,7 @@ struct icl_conn {
 #ifdef DIAGNOSTIC
        volatile u_int          ic_outstanding_pdus;
 #endif
-       TAILQ_HEAD(, icl_pdu)   ic_to_send;
+       STAILQ_HEAD(, icl_pdu)  ic_to_send;
        size_t                  ic_receive_len;
        int                     ic_receive_state;
        struct icl_pdu          *ic_receive_pdu;

Modified: head/sys/dev/iscsi/iscsi.c
==============================================================================
--- head/sys/dev/iscsi/iscsi.c  Fri Apr  4 07:43:11 2014        (r264108)
+++ head/sys/dev/iscsi/iscsi.c  Fri Apr  4 08:43:23 2014        (r264109)
@@ -217,12 +217,12 @@ iscsi_session_send_postponed(struct iscs
 
        ISCSI_SESSION_LOCK_ASSERT(is);
 
-       while (!TAILQ_EMPTY(&is->is_postponed)) {
-               request = TAILQ_FIRST(&is->is_postponed);
+       while (!STAILQ_EMPTY(&is->is_postponed)) {
+               request = STAILQ_FIRST(&is->is_postponed);
                postpone = iscsi_pdu_prepare(request);
                if (postpone)
                        break;
-               TAILQ_REMOVE(&is->is_postponed, request, ip_next);
+               STAILQ_REMOVE_HEAD(&is->is_postponed, ip_next);
                icl_pdu_queue(request);
        }
 }
@@ -238,7 +238,7 @@ iscsi_pdu_queue_locked(struct icl_pdu *r
        iscsi_session_send_postponed(is);
        postpone = iscsi_pdu_prepare(request);
        if (postpone) {
-               TAILQ_INSERT_TAIL(&is->is_postponed, request, ip_next);
+               STAILQ_INSERT_TAIL(&is->is_postponed, request, ip_next);
                return;
        }
        icl_pdu_queue(request);
@@ -326,9 +326,9 @@ iscsi_maintenance_thread_reconnect(struc
        /*
         * Remove postponed PDUs.
         */
-       while (!TAILQ_EMPTY(&is->is_postponed)) {
-               pdu = TAILQ_FIRST(&is->is_postponed);
-               TAILQ_REMOVE(&is->is_postponed, pdu, ip_next);
+       while (!STAILQ_EMPTY(&is->is_postponed)) {
+               pdu = STAILQ_FIRST(&is->is_postponed);
+               STAILQ_REMOVE_HEAD(&is->is_postponed, ip_next);
                icl_pdu_free(pdu);
        }
 
@@ -340,7 +340,7 @@ iscsi_maintenance_thread_reconnect(struc
 
        KASSERT(TAILQ_EMPTY(&is->is_outstanding),
            ("destroying session with active tasks"));
-       KASSERT(TAILQ_EMPTY(&is->is_postponed),
+       KASSERT(STAILQ_EMPTY(&is->is_postponed),
            ("destroying session with postponed PDUs"));
 
        /*
@@ -395,9 +395,9 @@ iscsi_maintenance_thread_terminate(struc
        /*
         * Remove postponed PDUs.
         */
-       while (!TAILQ_EMPTY(&is->is_postponed)) {
-               pdu = TAILQ_FIRST(&is->is_postponed);
-               TAILQ_REMOVE(&is->is_postponed, pdu, ip_next);
+       while (!STAILQ_EMPTY(&is->is_postponed)) {
+               pdu = STAILQ_FIRST(&is->is_postponed);
+               STAILQ_REMOVE_HEAD(&is->is_postponed, ip_next);
                icl_pdu_free(pdu);
        }
 
@@ -427,7 +427,7 @@ iscsi_maintenance_thread_terminate(struc
 
        KASSERT(TAILQ_EMPTY(&is->is_outstanding),
            ("destroying session with active tasks"));
-       KASSERT(TAILQ_EMPTY(&is->is_postponed),
+       KASSERT(STAILQ_EMPTY(&is->is_postponed),
            ("destroying session with postponed PDUs"));
 
        ISCSI_SESSION_UNLOCK(is);
@@ -458,7 +458,7 @@ iscsi_maintenance_thread(void *arg)
                ISCSI_SESSION_LOCK(is);
                if (is->is_reconnecting == false &&
                    is->is_terminating == false &&
-                   TAILQ_EMPTY(&is->is_postponed))
+                   STAILQ_EMPTY(&is->is_postponed))
                        cv_wait(&is->is_maintenance_cv, &is->is_lock);
 
                if (is->is_reconnecting) {
@@ -636,7 +636,7 @@ iscsi_pdu_update_statsn(const struct icl
                         * Command window increased; kick the maintanance thread
                         * to send out postponed commands.
                         */
-                       if (!TAILQ_EMPTY(&is->is_postponed))
+                       if (!STAILQ_EMPTY(&is->is_postponed))
                                cv_signal(&is->is_maintenance_cv);
                } else if (maxcmdsn < is->is_maxcmdsn) {
                        ISCSI_SESSION_DEBUG(is, "PDU MaxCmdSN %d < session 
MaxCmdSN %d; ignoring",
@@ -1646,7 +1646,7 @@ iscsi_ioctl_session_add(struct iscsi_sof
        is->is_conn->ic_error = iscsi_error_callback;
        is->is_conn->ic_prv0 = is;
        TAILQ_INIT(&is->is_outstanding);
-       TAILQ_INIT(&is->is_postponed);
+       STAILQ_INIT(&is->is_postponed);
        mtx_init(&is->is_lock, "iscsi_lock", NULL, MTX_DEF);
        cv_init(&is->is_maintenance_cv, "iscsi_mt");
 #ifdef ICL_KERNEL_PROXY

Modified: head/sys/dev/iscsi/iscsi.h
==============================================================================
--- head/sys/dev/iscsi/iscsi.h  Fri Apr  4 07:43:11 2014        (r264108)
+++ head/sys/dev/iscsi/iscsi.h  Fri Apr  4 08:43:23 2014        (r264109)
@@ -69,7 +69,7 @@ struct iscsi_session {
        char                            is_target_alias[ISCSI_ALIAS_LEN];
 
        TAILQ_HEAD(, iscsi_outstanding) is_outstanding;
-       TAILQ_HEAD(, icl_pdu)           is_postponed;
+       STAILQ_HEAD(, icl_pdu)          is_postponed;
 
        struct callout                  is_callout;
        unsigned int                    is_timeout;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to