mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 12:20:50 +07:00
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>
This commit is contained in:
parent
33a48927c1
commit
6bb16e7ae2
@ -293,9 +293,10 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n)
|
||||
|
||||
/* 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 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n)
|
||||
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 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n)
|
||||
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 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n)
|
||||
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 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n)
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user