af_unix: Clean up some sock_net() uses.
authorKuniyuki Iwashima <kuniyu@amazon.com>
Tue, 21 Jun 2022 17:19:08 +0000 (10:19 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Jun 2022 11:59:43 +0000 (12:59 +0100)
Some functions define a net pointer only for one-shot use.  Others call
sock_net() redundantly even when a net pointer is available.  Let's fix
these and make the code simpler.

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/unix/af_unix.c
net/unix/diag.c

index 3453e00..990257f 100644 (file)
@@ -932,7 +932,7 @@ static struct sock *unix_create1(struct net *net, struct socket *sock, int kern,
        memset(&u->scm_stat, 0, sizeof(struct scm_stat));
        unix_insert_unbound_socket(sk);
 
-       sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
+       sock_prot_inuse_add(net, sk->sk_prot, 1);
 
        return sk;
 
@@ -1293,9 +1293,8 @@ static void unix_state_double_unlock(struct sock *sk1, struct sock *sk2)
 static int unix_dgram_connect(struct socket *sock, struct sockaddr *addr,
                              int alen, int flags)
 {
-       struct sock *sk = sock->sk;
-       struct net *net = sock_net(sk);
        struct sockaddr_un *sunaddr = (struct sockaddr_un *)addr;
+       struct sock *sk = sock->sk;
        struct sock *other;
        int err;
 
@@ -1316,7 +1315,7 @@ static int unix_dgram_connect(struct socket *sock, struct sockaddr *addr,
                }
 
 restart:
-               other = unix_find_other(net, sunaddr, alen, sock->type);
+               other = unix_find_other(sock_net(sk), sunaddr, alen, sock->type);
                if (IS_ERR(other)) {
                        err = PTR_ERR(other);
                        goto out;
@@ -1404,15 +1403,13 @@ static int unix_stream_connect(struct socket *sock, struct sockaddr *uaddr,
                               int addr_len, int flags)
 {
        struct sockaddr_un *sunaddr = (struct sockaddr_un *)uaddr;
-       struct sock *sk = sock->sk;
-       struct net *net = sock_net(sk);
+       struct sock *sk = sock->sk, *newsk = NULL, *other = NULL;
        struct unix_sock *u = unix_sk(sk), *newu, *otheru;
-       struct sock *newsk = NULL;
-       struct sock *other = NULL;
+       struct net *net = sock_net(sk);
        struct sk_buff *skb = NULL;
-       int st;
-       int err;
        long timeo;
+       int err;
+       int st;
 
        err = unix_validate_addr(sunaddr, addr_len);
        if (err)
@@ -1432,7 +1429,7 @@ static int unix_stream_connect(struct socket *sock, struct sockaddr *uaddr,
         */
 
        /* create new sock for complete connection */
-       newsk = unix_create1(sock_net(sk), NULL, 0, sock->type);
+       newsk = unix_create1(net, NULL, 0, sock->type);
        if (IS_ERR(newsk)) {
                err = PTR_ERR(newsk);
                newsk = NULL;
@@ -1840,17 +1837,15 @@ static void scm_stat_del(struct sock *sk, struct sk_buff *skb)
 static int unix_dgram_sendmsg(struct socket *sock, struct msghdr *msg,
                              size_t len)
 {
-       struct sock *sk = sock->sk;
-       struct net *net = sock_net(sk);
-       struct unix_sock *u = unix_sk(sk);
        DECLARE_SOCKADDR(struct sockaddr_un *, sunaddr, msg->msg_name);
-       struct sock *other = NULL;
-       int err;
-       struct sk_buff *skb;
-       long timeo;
+       struct sock *sk = sock->sk, *other = NULL;
+       struct unix_sock *u = unix_sk(sk);
        struct scm_cookie scm;
+       struct sk_buff *skb;
        int data_len = 0;
        int sk_locked;
+       long timeo;
+       int err;
 
        wait_for_unix_gc();
        err = scm_send(sock, msg, &scm, false);
@@ -1917,7 +1912,7 @@ restart:
                if (sunaddr == NULL)
                        goto out_free;
 
-               other = unix_find_other(net, sunaddr, msg->msg_namelen,
+               other = unix_find_other(sock_net(sk), sunaddr, msg->msg_namelen,
                                        sk->sk_type);
                if (IS_ERR(other)) {
                        err = PTR_ERR(other);
index bb0b5ea..4e3dc81 100644 (file)
@@ -308,7 +308,6 @@ out_nosk:
 static int unix_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
 {
        int hdrlen = sizeof(struct unix_diag_req);
-       struct net *net = sock_net(skb->sk);
 
        if (nlmsg_len(h) < hdrlen)
                return -EINVAL;
@@ -317,7 +316,7 @@ static int unix_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
                struct netlink_dump_control c = {
                        .dump = unix_diag_dump,
                };
-               return netlink_dump_start(net->diag_nlsk, skb, h, &c);
+               return netlink_dump_start(sock_net(skb->sk)->diag_nlsk, skb, h, &c);
        } else
                return unix_diag_get_exact(skb, h, nlmsg_data(h));
 }