Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 150089
b: refs/heads/master
c: 088eb2d
h: refs/heads/master
i:
  150087: 6487475
v: v3
  • Loading branch information
Alexey Dobriyan authored and David S. Miller committed May 4, 2009
1 parent 2edc687 commit b26f85d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4a84822c60afa2b0e2d3370041f69f9526a34757
refs/heads/master: 088eb2d905de9518dad913995bb8aef493d4a7c5
44 changes: 20 additions & 24 deletions trunk/net/core/net_namespace.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,38 +115,34 @@ static void net_free(struct net *net)
kmem_cache_free(net_cachep, net);
}

struct net *copy_net_ns(unsigned long flags, struct net *old_net)
static struct net *net_create(void)
{
struct net *new_net = NULL;
int err;

if (!(flags & CLONE_NEWNET))
return get_net(old_net);

err = -ENOMEM;
new_net = net_alloc();
if (!new_net)
goto out_err;
struct net *net;
int rv;

net = net_alloc();
if (!net)
return ERR_PTR(-ENOMEM);
mutex_lock(&net_mutex);
err = setup_net(new_net);
if (!err) {
rv = setup_net(net);
if (rv == 0) {
rtnl_lock();
list_add_tail(&new_net->list, &net_namespace_list);
list_add_tail(&net->list, &net_namespace_list);
rtnl_unlock();
}
mutex_unlock(&net_mutex);
if (rv < 0) {
net_free(net);
return ERR_PTR(rv);
}
return net;
}

if (err)
goto out_free;
out:
return new_net;

out_free:
net_free(new_net);
out_err:
new_net = ERR_PTR(err);
goto out;
struct net *copy_net_ns(unsigned long flags, struct net *old_net)
{
if (!(flags & CLONE_NEWNET))
return get_net(old_net);
return net_create();
}

static void cleanup_net(struct work_struct *work)
Expand Down

0 comments on commit b26f85d

Please sign in to comment.