forked from mirrors/linux
		
	ipv6: add mtu lock check in __ip6_rt_update_pmtu
Prior to this patch, ipv6 didn't do mtu lock check in ip6_update_pmtu. It leaded to that mtu lock doesn't really work when receiving the pkt of ICMPV6_PKT_TOOBIG. This patch is to add mtu lock check in __ip6_rt_update_pmtu just as ipv4 did in __ip_rt_update_pmtu. Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									f89c56ce71
								
							
						
					
					
						commit
						19bda36c42
					
				
					 1 changed files with 3 additions and 0 deletions
				
			
		| 
						 | 
					@ -1364,6 +1364,9 @@ static void __ip6_rt_update_pmtu(struct dst_entry *dst, const struct sock *sk,
 | 
				
			||||||
	if (rt6->rt6i_flags & RTF_LOCAL)
 | 
						if (rt6->rt6i_flags & RTF_LOCAL)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (dst_metric_locked(dst, RTAX_MTU))
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dst_confirm(dst);
 | 
						dst_confirm(dst);
 | 
				
			||||||
	mtu = max_t(u32, mtu, IPV6_MIN_MTU);
 | 
						mtu = max_t(u32, mtu, IPV6_MIN_MTU);
 | 
				
			||||||
	if (mtu >= dst_mtu(dst))
 | 
						if (mtu >= dst_mtu(dst))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue