patch-2.3.48 linux/net/sched/sch_dsmark.c

Next file: linux/net/wanrouter/wanproc.c
Previous file: linux/net/sched/sch_cbq.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.47/linux/net/sched/sch_dsmark.c linux/net/sched/sch_dsmark.c
@@ -278,10 +278,16 @@
 
 static int dsmark_requeue(struct sk_buff *skb,struct Qdisc *sch)
 {
+	int ret;
 	struct dsmark_qdisc_data *p = PRIV(sch);
 
 	D2PRINTK("dsmark_requeue(skb %p,sch %p,[qdisc %p])\n",skb,sch,p);
-	return p->q->ops->requeue(skb,p->q);
+        if ((ret = p->q->ops->requeue(skb, p->q)) == 0) {
+		sch->q.qlen++;
+		return 0;
+	}
+	sch->stats.drops++;
+	return ret;
 }
 
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)