Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-2.6-block.git] / net / ipv4 / ip_sockglue.c
index a50124260f5a4aaa98a3e4a582dbcbdbc236e370..035ad645a8d9d8abd55321ad2bcd0e44d1d0fc3c 100644 (file)
@@ -573,6 +573,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
                            int optname, char __user *optval, unsigned int optlen)
 {
        struct inet_sock *inet = inet_sk(sk);
+       struct net *net = sock_net(sk);
        int val = 0, err;
        bool needs_rtnl = setsockopt_needs_rtnl(optname);
 
@@ -912,7 +913,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
                }
                /* numsrc >= (1G-4) overflow in 32 bits */
                if (msf->imsf_numsrc >= 0x3ffffffcU ||
-                   msf->imsf_numsrc > sysctl_igmp_max_msf) {
+                   msf->imsf_numsrc > net->ipv4.sysctl_igmp_max_msf) {
                        kfree(msf);
                        err = -ENOBUFS;
                        break;
@@ -1067,7 +1068,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
 
                /* numsrc >= (4G-140)/128 overflow in 32 bits */
                if (gsf->gf_numsrc >= 0x1ffffff ||
-                   gsf->gf_numsrc > sysctl_igmp_max_msf) {
+                   gsf->gf_numsrc > net->ipv4.sysctl_igmp_max_msf) {
                        err = -ENOBUFS;
                        goto mc_msf_out;
                }
@@ -1342,10 +1343,13 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
                val = inet->tos;
                break;
        case IP_TTL:
+       {
+               struct net *net = sock_net(sk);
                val = (inet->uc_ttl == -1 ?
-                      sysctl_ip_default_ttl :
+                      net->ipv4.sysctl_ip_default_ttl :
                       inet->uc_ttl);
                break;
+       }
        case IP_HDRINCL:
                val = inet->hdrincl;
                break;