aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/socket.c
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2012-08-06 04:42:04 -0400
committerDavid S. Miller <davem@davemloft.net>2012-08-15 02:12:17 -0400
commit4db67e808640e3934d82ce61ee8e2e89fd877ba8 (patch)
treeff02e330187c41970c75f6d8a6275e1cc25165f0 /net/sctp/socket.c
parent4110cc255ddec59c79fba4d71cdd948d0a382140 (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.c7
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