:net-sched: Fix actions flushing
Subsystems (3)
PATCH 1/1 :net-sched: Fix actions flushing
Caught by regression testing which i havent run in a loong time.
cheers,
jamal
net-sched: Fix actions flushing
Flushing of actions has been broken since we changed
the semantics of netlink parsed tb[X] to mean X is an attribute type. This makes the flushing work.
Signed-off-by Jamal Hadi Salim <[email protected]>
---
commit 4e13e943acd2aa262e1e10c7779518d3ca18cae3
tree 0d95c9b83575fb39538ad4db13adf6bc5aa09105
parent 8dd4c21ea0029bb6a9c838254460f9b1ca677531
author Jamal Hadi Salim <[email protected]> Fri, 08 Aug 2008 09:20:29 -0400 committer Jamal Hadi Salim <[email protected]> Fri, 08 Aug 2008 09:20:29 -0400
net/sched/act_api.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
net/sched/act_api.c +7 -2
@@ -790,6 +790,8 @@ static int tca_action_flush(struct nlattr *nla, struct nlmsghdr *n, u32 pid) err = a->ops->walk (skb, &dcb,RTM_DELACTION , a);if (err <0 ) goto nla_put_failure; +if (err ==0 ) + goto noflush_out;nla_nest_end (skb, nest);
@@ -807,6 +809,7 @@ nla_put_failure: nlmsg_failure:module_put (a->ops->owner); err_out: +noflush_out:kfree_skb (skb);kfree (a);return err;
@@ -824,8 +827,10 @@ tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)return ret;if (event ==RTM_DELACTION && n->nlmsg_flags&NLM_F_ROOT ) { -if (tb[0 ] !=NULL && tb[1 ] ==NULL ) -return tca_action_flush (tb[0 ], n, pid); +if (tb[1 ] !=NULL ) +return tca_action_flush (tb[1 ], n, pid); +else +return -EINVAL ; }for (i =1 ; i <=TCA_ACT_MAX_PRIO && tb[i]; i++) {
From: jamal <[email protected]>
Date: Fri, 08 Aug 2008 09:37:22 -0400
Quoted 1 line
Caught by regression testing which i havent run in a loong time.
Applied, thanks.