net: Cleanup in copy_net_ns()
Line up destructors actions in the revers order to constructors. Next patches will add more actions, and this will be comfortable, if there is the such order. Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> Acked-by: Andrei Vagin <avagin@virtuozzo.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
98f6c533a3
Коммит
5ba049a5cc
|
@ -411,27 +411,25 @@ struct net *copy_net_ns(unsigned long flags,
|
|||
|
||||
net = net_alloc();
|
||||
if (!net) {
|
||||
dec_net_namespaces(ucounts);
|
||||
return ERR_PTR(-ENOMEM);
|
||||
rv = -ENOMEM;
|
||||
goto dec_ucounts;
|
||||
}
|
||||
|
||||
refcount_set(&net->passive, 1);
|
||||
net->ucounts = ucounts;
|
||||
get_user_ns(user_ns);
|
||||
|
||||
rv = mutex_lock_killable(&net_mutex);
|
||||
if (rv < 0) {
|
||||
net_free(net);
|
||||
dec_net_namespaces(ucounts);
|
||||
put_user_ns(user_ns);
|
||||
return ERR_PTR(rv);
|
||||
}
|
||||
if (rv < 0)
|
||||
goto put_userns;
|
||||
|
||||
net->ucounts = ucounts;
|
||||
rv = setup_net(net, user_ns);
|
||||
mutex_unlock(&net_mutex);
|
||||
if (rv < 0) {
|
||||
dec_net_namespaces(ucounts);
|
||||
put_userns:
|
||||
put_user_ns(user_ns);
|
||||
net_drop_ns(net);
|
||||
dec_ucounts:
|
||||
dec_net_namespaces(ucounts);
|
||||
return ERR_PTR(rv);
|
||||
}
|
||||
return net;
|
||||
|
|
Загрузка…
Ссылка в новой задаче