Commit d8a9b38f authored by Christoph Hellwig's avatar Christoph Hellwig Committed by David S. Miller
Browse files

net: streamline __sys_getsockopt



Return early when sockfd_lookup_light fails to reduce a level of
indentation for most of the function body.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4a367299
Loading
Loading
Loading
Loading
+14 −17
Original line number Diff line number Diff line
@@ -2163,7 +2163,9 @@ static int __sys_getsockopt(int fd, int level, int optname,
	int max_optlen;

	sock = sockfd_lookup_light(fd, &err, &fput_needed);
	if (sock != NULL) {
	if (!sock)
		return err;

	err = security_socket_getsockopt(sock, level, optname);
	if (err)
		goto out_put;
@@ -2171,20 +2173,15 @@ static int __sys_getsockopt(int fd, int level, int optname,
	max_optlen = BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN(optlen);

	if (level == SOL_SOCKET)
			err =
			    sock_getsockopt(sock, level, optname, optval,
					    optlen);
		err = sock_getsockopt(sock, level, optname, optval, optlen);
	else
			err =
			    sock->ops->getsockopt(sock, level, optname, optval,
		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);
	}
	return err;
}