forked from mirrors/linux
		
	sockfd_lookup_light(): switch to fdget^W^Waway from fget_light
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
		
							parent
							
								
									9c225f2655
								
							
						
					
					
						commit
						00e188ef6a
					
				
					 1 changed files with 7 additions and 6 deletions
				
			
		
							
								
								
									
										13
									
								
								net/socket.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								net/socket.c
									
									
									
									
									
								
							|  | @ -450,16 +450,17 @@ EXPORT_SYMBOL(sockfd_lookup); | |||
| 
 | ||||
| static struct socket *sockfd_lookup_light(int fd, int *err, int *fput_needed) | ||||
| { | ||||
| 	struct file *file; | ||||
| 	struct fd f = fdget(fd); | ||||
| 	struct socket *sock; | ||||
| 
 | ||||
| 	*err = -EBADF; | ||||
| 	file = fget_light(fd, fput_needed); | ||||
| 	if (file) { | ||||
| 		sock = sock_from_file(file, err); | ||||
| 		if (sock) | ||||
| 	if (f.file) { | ||||
| 		sock = sock_from_file(f.file, err); | ||||
| 		if (likely(sock)) { | ||||
| 			*fput_needed = f.flags; | ||||
| 			return sock; | ||||
| 		fput_light(file, *fput_needed); | ||||
| 		} | ||||
| 		fdput(f); | ||||
| 	} | ||||
| 	return NULL; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Al Viro
						Al Viro