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: Christoph Hellwig <hch@lst.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									4a3672993f
								
							
						
					
					
						commit
						d8a9b38f83
					
				
							
								
								
									
										31
									
								
								net/socket.c
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								net/socket.c
									
									
									
									
									
								
							| @ -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; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user