diff options
author | Jiri Pirko <jiri@mellanox.com> | 2017-02-09 16:38:58 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-10 19:38:09 +0300 |
commit | 6bb16e7ae26095892e8c51de4142d8f344793340 (patch) | |
tree | f8f63c92d59bce37090234b58ba8c3b160c03d84 /net | |
parent | 33a48927c193d030c80ecaeb3e021b7ed85f9c78 (diff) | |
download | linux-6bb16e7ae26095892e8c51de4142d8f344793340.tar.xz |
sched: move err set right before goto errout in tc_ctl_tfilter
This makes the reader to know right away what is the error value.
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/sched/cls_api.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index d378a0b156c1..f44378c4859f 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c @@ -293,9 +293,10 @@ replay: /* And the last stroke */ chain = cops->tcf_chain(q, cl); - err = -EINVAL; - if (chain == NULL) + if (chain == NULL) { + err = -EINVAL; goto errout; + } if (n->nlmsg_type == RTM_DELTFILTER && prio == 0) { tfilter_notify_chain(net, skb, n, chain, RTM_DELTFILTER); tcf_destroy_chain(chain); @@ -310,8 +311,10 @@ replay: if (tp->prio >= prio) { if (tp->prio == prio) { if (!nprio || - (tp->protocol != protocol && protocol)) + (tp->protocol != protocol && protocol)) { + err = -EINVAL; goto errout; + } } else tp = NULL; break; @@ -321,13 +324,16 @@ replay: if (tp == NULL) { /* Proto-tcf does not exist, create new one */ - if (tca[TCA_KIND] == NULL || !protocol) + if (tca[TCA_KIND] == NULL || !protocol) { + err = -EINVAL; goto errout; + } - err = -ENOENT; if (n->nlmsg_type != RTM_NEWTFILTER || - !(n->nlmsg_flags & NLM_F_CREATE)) + !(n->nlmsg_flags & NLM_F_CREATE)) { + err = -ENOENT; goto errout; + } if (!nprio) nprio = TC_H_MAJ(tcf_auto_prio(rtnl_dereference(*back))); @@ -339,8 +345,10 @@ replay: goto errout; } tp_created = 1; - } else if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], tp->ops->kind)) + } else if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], tp->ops->kind)) { + err = -EINVAL; goto errout; + } fh = tp->ops->get(tp, t->tcm_handle); @@ -357,17 +365,18 @@ replay: goto errout; } - err = -ENOENT; if (n->nlmsg_type != RTM_NEWTFILTER || - !(n->nlmsg_flags & NLM_F_CREATE)) + !(n->nlmsg_flags & NLM_F_CREATE)) { + err = -ENOENT; goto errout; + } } else { switch (n->nlmsg_type) { case RTM_NEWTFILTER: - err = -EEXIST; if (n->nlmsg_flags & NLM_F_EXCL) { if (tp_created) tcf_proto_destroy(tp, true); + err = -EEXIST; goto errout; } break; |