diff options
Diffstat (limited to 'net/sched/act_ipt.c')
-rw-r--r-- | net/sched/act_ipt.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/sched/act_ipt.c b/net/sched/act_ipt.c index e13ecbbfe8c4..242636950ea5 100644 --- a/net/sched/act_ipt.c +++ b/net/sched/act_ipt.c @@ -134,10 +134,12 @@ static int tcf_ipt_init(struct net *net, struct nlattr *nla, struct nlattr *est, return PTR_ERR(pc); ret = ACT_P_CREATED; } else { - if (!ovr) { - tcf_ipt_release(to_ipt(pc), bind); + if (bind)/* dont override defaults */ + return 0; + tcf_ipt_release(to_ipt(pc), bind); + + if (!ovr) return -EEXIST; - } } ipt = to_ipt(pc); |