inet: introduce inet->inet_flags
Various inet fields are currently racy. do_ip_setsockopt() and do_ip_getsockopt() are mostly holding the socket lock, but some (fast) paths do not. Use a new inet->inet_flags to hold atomic bits in the series. Remove inet->cmsg_flags, and use instead 9 bits from inet_flags. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Soheil Hassas Yeganeh <soheil@google.com> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
				
					committed by
					
						 David S. Miller
						David S. Miller
					
				
			
			
				
	
			
			
			
						parent
						
							936db833c2
						
					
				
				
					commit
					c274af2242
				
			| @@ -767,7 +767,7 @@ static int raw_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, | ||||
| 		memset(&sin->sin_zero, 0, sizeof(sin->sin_zero)); | ||||
| 		*addr_len = sizeof(*sin); | ||||
| 	} | ||||
| 	if (inet->cmsg_flags) | ||||
| 	if (inet_cmsg_flags(inet)) | ||||
| 		ip_cmsg_recv(msg, skb); | ||||
| 	if (flags & MSG_TRUNC) | ||||
| 		copied = skb->len; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user