Commit a6bcf1c1 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by David S. Miller

net: pppoe - introduce net-namespace functionality

- each net-namespace for pppoe module is having own
  hash table and appropriate locks wich are allocated
  at time of namespace intialization. It requires about
  140 bytes of memory for every new namespace but such
  approach allow us to escape from hash chains growing
  and additional lock contends (especially in SMP environment).

- pppox code allows to create per-namespace sockets for
  PX_PROTO_OE protocol only (since at this moment support
  for pppol2tp net-namespace is not implemented yet).
Signed-off-by: default avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6aba9158
This diff is collapsed.
...@@ -108,12 +108,13 @@ static int pppox_create(struct net *net, struct socket *sock, int protocol) ...@@ -108,12 +108,13 @@ static int pppox_create(struct net *net, struct socket *sock, int protocol)
{ {
int rc = -EPROTOTYPE; int rc = -EPROTOTYPE;
if (net != &init_net)
return -EAFNOSUPPORT;
if (protocol < 0 || protocol > PX_MAX_PROTO) if (protocol < 0 || protocol > PX_MAX_PROTO)
goto out; goto out;
/* we support net-namespaces for PPPoE only (yet) */
if (protocol != PX_PROTO_OE && net != &init_net)
return -EAFNOSUPPORT;
rc = -EPROTONOSUPPORT; rc = -EPROTONOSUPPORT;
if (!pppox_protos[protocol]) if (!pppox_protos[protocol])
request_module("pppox-proto-%d", protocol); request_module("pppox-proto-%d", protocol);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment