net: streamline __sys_getsockopt
authorChristoph Hellwig <hch@lst.de>
Fri, 17 Jul 2020 06:23:12 +0000 (08:23 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 Jul 2020 01:16:40 +0000 (18:16 -0700)
Return early when sockfd_lookup_light fails to reduce a level of
indentation for most of the function body.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/socket.c

index 49a6daf..b79376b 100644 (file)
@@ -2163,28 +2163,25 @@ static int __sys_getsockopt(int fd, int level, int optname,
        int max_optlen;
 
        sock = sockfd_lookup_light(fd, &err, &fput_needed);
-       if (sock != NULL) {
-               err = security_socket_getsockopt(sock, level, optname);
-               if (err)
-                       goto out_put;
+       if (!sock)
+               return err;
 
-               max_optlen = BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN(optlen);
+       err = security_socket_getsockopt(sock, level, optname);
+       if (err)
+               goto out_put;
 
-               if (level == SOL_SOCKET)
-                       err =
-                           sock_getsockopt(sock, level, optname, optval,
+       max_optlen = BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN(optlen);
+
+       if (level == SOL_SOCKET)
+               err = sock_getsockopt(sock, level, optname, optval, optlen);
+       else
+               err = sock->ops->getsockopt(sock, level, optname, optval,
                                            optlen);
-               else
-                       err =
-                           sock->ops->getsockopt(sock, level, optname, optval,
-                                                 optlen);
 
-               err = BPF_CGROUP_RUN_PROG_GETSOCKOPT(sock->sk, level, optname,
-                                                    optval, optlen,
-                                                    max_optlen, err);
+       err = BPF_CGROUP_RUN_PROG_GETSOCKOPT(sock->sk, level, optname, optval,
+                                            optlen, max_optlen, err);
 out_put:
-               fput_light(sock->file, fput_needed);
-       }
+       fput_light(sock->file, fput_needed);
        return err;
 }