netfilter: nf_conntrack: simplify __nf_ct_try_assign_helper() return logic
Instead of several goto's just to return the result, simply return it. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
71212c9b04
commit
cf71c03edf
|
@ -189,7 +189,6 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl,
|
||||||
struct nf_conntrack_helper *helper = NULL;
|
struct nf_conntrack_helper *helper = NULL;
|
||||||
struct nf_conn_help *help;
|
struct nf_conn_help *help;
|
||||||
struct net *net = nf_ct_net(ct);
|
struct net *net = nf_ct_net(ct);
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
/* We already got a helper explicitly attached. The function
|
/* We already got a helper explicitly attached. The function
|
||||||
* nf_conntrack_alter_reply - in case NAT is in use - asks for looking
|
* nf_conntrack_alter_reply - in case NAT is in use - asks for looking
|
||||||
|
@ -223,15 +222,13 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl,
|
||||||
if (helper == NULL) {
|
if (helper == NULL) {
|
||||||
if (help)
|
if (help)
|
||||||
RCU_INIT_POINTER(help->helper, NULL);
|
RCU_INIT_POINTER(help->helper, NULL);
|
||||||
goto out;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (help == NULL) {
|
if (help == NULL) {
|
||||||
help = nf_ct_helper_ext_add(ct, helper, flags);
|
help = nf_ct_helper_ext_add(ct, helper, flags);
|
||||||
if (help == NULL) {
|
if (help == NULL)
|
||||||
ret = -ENOMEM;
|
return -ENOMEM;
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
/* We only allow helper re-assignment of the same sort since
|
/* We only allow helper re-assignment of the same sort since
|
||||||
* we cannot reallocate the helper extension area.
|
* we cannot reallocate the helper extension area.
|
||||||
|
@ -240,13 +237,13 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl,
|
||||||
|
|
||||||
if (tmp && tmp->help != helper->help) {
|
if (tmp && tmp->help != helper->help) {
|
||||||
RCU_INIT_POINTER(help->helper, NULL);
|
RCU_INIT_POINTER(help->helper, NULL);
|
||||||
goto out;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rcu_assign_pointer(help->helper, helper);
|
rcu_assign_pointer(help->helper, helper);
|
||||||
out:
|
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(__nf_ct_try_assign_helper);
|
EXPORT_SYMBOL_GPL(__nf_ct_try_assign_helper);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue