act_mirred: combine duplicate code
authorChangli Gao <xiaosuo@gmail.com>
Tue, 29 Jun 2010 22:54:58 +0000 (22:54 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Jun 2010 19:12:36 +0000 (12:12 -0700)
act_mirred: combine duplicate code

tcf_bstats is updated in any way, so we can do it earlier to reduce the size of
the code.

Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
----
 net/sched/act_mirred.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_mirred.c

index 2e9a7b91aa10cc0f5bbcb67d4a9b630d1f3f0cc0..a16b0175f890686025c5b6684ef13cc878acd6f3 100644 (file)
@@ -160,6 +160,8 @@ static int tcf_mirred(struct sk_buff *skb, struct tc_action *a,
 
        spin_lock(&m->tcf_lock);
        m->tcf_tm.lastuse = jiffies;
+       m->tcf_bstats.bytes += qdisc_pkt_len(skb);
+       m->tcf_bstats.packets++;
 
        dev = m->tcfm_dev;
        if (!(dev->flags & IFF_UP)) {
@@ -174,8 +176,6 @@ static int tcf_mirred(struct sk_buff *skb, struct tc_action *a,
        if (skb2 == NULL)
                goto out;
 
-       m->tcf_bstats.bytes += qdisc_pkt_len(skb2);
-       m->tcf_bstats.packets++;
        if (!(at & AT_EGRESS)) {
                if (m->tcfm_ok_push)
                        skb_push(skb2, skb2->dev->hard_header_len);
@@ -193,8 +193,6 @@ static int tcf_mirred(struct sk_buff *skb, struct tc_action *a,
 out:
        if (err) {
                m->tcf_qstats.overlimits++;
-               m->tcf_bstats.bytes += qdisc_pkt_len(skb);
-               m->tcf_bstats.packets++;
                /* should we be asking for packet to be dropped?
                 * may make sense for redirect case only
                 */