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>