diff options
| author | Cong Wang <[email protected]> | 2014-04-25 20:55:30 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2014-04-28 03:42:39 +0000 |
| commit | a49eb42a341f1df8fa0f9dc4449f9dd4a3234a2f (patch) | |
| tree | d57c9fb4e9e09ca9560321ac69a057dd1f455fce /net/sched/cls_api.c | |
| parent | sched, cls: check if we could overwrite actions when changing a filter (diff) | |
| download | kernel-a49eb42a341f1df8fa0f9dc4449f9dd4a3234a2f.tar.gz kernel-a49eb42a341f1df8fa0f9dc4449f9dd4a3234a2f.zip | |
sched, act: allow to clear all actions as well
When we change the list of action on a given filter, currently we don't
change it to empty. This is a bug, we should allow to change to whatever
users given.
Cc: Jamal Hadi Salim <[email protected]>
Cc: David S. Miller <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Signed-off-by: Jamal Hadi Salim <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/sched/cls_api.c')
| -rw-r--r-- | net/sched/cls_api.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 6786130a4f59..a481bbe118d3 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c @@ -544,14 +544,12 @@ void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst, struct tcf_exts *src) { #ifdef CONFIG_NET_CLS_ACT - if (!list_empty(&src->actions)) { - LIST_HEAD(tmp); - tcf_tree_lock(tp); - list_splice_init(&dst->actions, &tmp); - list_splice(&src->actions, &dst->actions); - tcf_tree_unlock(tp); - tcf_action_destroy(&tmp, TCA_ACT_UNBIND); - } + LIST_HEAD(tmp); + tcf_tree_lock(tp); + list_splice_init(&dst->actions, &tmp); + list_splice(&src->actions, &dst->actions); + tcf_tree_unlock(tp); + tcf_action_destroy(&tmp, TCA_ACT_UNBIND); #endif } EXPORT_SYMBOL(tcf_exts_change); |
