Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Feb 2010 14:29:07 +0000 (UTC)
From:      Luigi Rizzo <luigi@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r203345 - user/luigi/ipfw3-head/sys/netinet/ipfw
Message-ID:  <201002011429.o11ET7tc078830@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: luigi
Date: Mon Feb  1 14:29:07 2010
New Revision: 203345
URL: http://svn.freebsd.org/changeset/base/203345

Log:
  fix removal of a queue from the round robin list

Modified:
  user/luigi/ipfw3-head/sys/netinet/ipfw/dn_sched_rr.c

Modified: user/luigi/ipfw3-head/sys/netinet/ipfw/dn_sched_rr.c
==============================================================================
--- user/luigi/ipfw3-head/sys/netinet/ipfw/dn_sched_rr.c	Mon Feb  1 14:17:40 2010	(r203344)
+++ user/luigi/ipfw3-head/sys/netinet/ipfw/dn_sched_rr.c	Mon Feb  1 14:29:07 2010	(r203345)
@@ -113,15 +113,14 @@ remove_queue_q(struct rr_queue *q, struc
 	if (q == si->head)
 		return rr_remove_head(si);
 
-	prev = si->head;
-	while (prev) {
-		if (prev->qnext == q) {
-			prev->qnext = q->qnext;
-			if (q == si->tail)
-				si->tail = prev;
-			q->status = 0;
-		}
-		prev = prev->qnext;
+	for (prev = si->head; prev; prev = prev->qnext) {
+		if (prev->qnext != q)
+			continue;
+		prev->qnext = q->qnext;
+		if (q == si->tail)
+			si->tail = prev;
+		q->status = 0;
+		break;
 	}
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002011429.o11ET7tc078830>