diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2012-08-06 04:42:04 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-08-15 02:12:17 -0400 |
commit | 4db67e808640e3934d82ce61ee8e2e89fd877ba8 (patch) | |
tree | ff02e330187c41970c75f6d8a6275e1cc25165f0 /net/sctp/socket.c | |
parent | 4110cc255ddec59c79fba4d71cdd948d0a382140 (diff) |
sctp: Make the address lists per network namespace
- Move the address lists into struct net
- Add per network namespace initialization and cleanup
- Pass around struct net so it is everywhere I need it.
- Rename all of the global variable references into references
to the variables moved into struct net
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: Vlad Yasevich <vyasevich@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r-- | net/sctp/socket.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 4316b0f988d4..5b6dd0e3d1f6 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -3471,7 +3471,7 @@ static int sctp_setsockopt_auto_asconf(struct sock *sk, char __user *optval, | |||
3471 | sp->do_auto_asconf = 0; | 3471 | sp->do_auto_asconf = 0; |
3472 | } else if (val && !sp->do_auto_asconf) { | 3472 | } else if (val && !sp->do_auto_asconf) { |
3473 | list_add_tail(&sp->auto_asconf_list, | 3473 | list_add_tail(&sp->auto_asconf_list, |
3474 | &sctp_auto_asconf_splist); | 3474 | &sock_net(sk)->sctp.auto_asconf_splist); |
3475 | sp->do_auto_asconf = 1; | 3475 | sp->do_auto_asconf = 1; |
3476 | } | 3476 | } |
3477 | return 0; | 3477 | return 0; |
@@ -3964,7 +3964,7 @@ SCTP_STATIC int sctp_init_sock(struct sock *sk) | |||
3964 | sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); | 3964 | sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); |
3965 | if (sctp_default_auto_asconf) { | 3965 | if (sctp_default_auto_asconf) { |
3966 | list_add_tail(&sp->auto_asconf_list, | 3966 | list_add_tail(&sp->auto_asconf_list, |
3967 | &sctp_auto_asconf_splist); | 3967 | &sock_net(sk)->sctp.auto_asconf_splist); |
3968 | sp->do_auto_asconf = 1; | 3968 | sp->do_auto_asconf = 1; |
3969 | } else | 3969 | } else |
3970 | sp->do_auto_asconf = 0; | 3970 | sp->do_auto_asconf = 0; |
@@ -4653,9 +4653,10 @@ static int sctp_copy_laddrs(struct sock *sk, __u16 port, void *to, | |||
4653 | union sctp_addr temp; | 4653 | union sctp_addr temp; |
4654 | int cnt = 0; | 4654 | int cnt = 0; |
4655 | int addrlen; | 4655 | int addrlen; |
4656 | struct net *net = sock_net(sk); | ||
4656 | 4657 | ||
4657 | rcu_read_lock(); | 4658 | rcu_read_lock(); |
4658 | list_for_each_entry_rcu(addr, &sctp_local_addr_list, list) { | 4659 | list_for_each_entry_rcu(addr, &net->sctp.local_addr_list, list) { |
4659 | if (!addr->valid) | 4660 | if (!addr->valid) |
4660 | continue; | 4661 | continue; |
4661 | 4662 | ||