diff options
author | Eric Dumazet <edumazet@google.com> | 2015-09-25 07:39:14 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-09-25 13:00:37 -0700 |
commit | 4e3f5d727d60939c890a6e86944da52b3a1625ce (patch) | |
tree | 48cd1e6ecd83eea399758377fe063a960bbbd623 /include/net/ip.h | |
parent | 30d50c61df94bc8d7700272ea09a716e0af8b58b (diff) | |
download | lwn-4e3f5d727d60939c890a6e86944da52b3a1625ce.tar.gz lwn-4e3f5d727d60939c890a6e86944da52b3a1625ce.zip |
inet: constify ip_dont_fragment() arguments
ip_dont_fragment() can accept const socket and dst
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/ip.h')
-rw-r--r-- | include/net/ip.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/net/ip.h b/include/net/ip.h index 9b9ca2839399..525dc0778926 100644 --- a/include/net/ip.h +++ b/include/net/ip.h @@ -282,10 +282,12 @@ int ip_decrease_ttl(struct iphdr *iph) } static inline -int ip_dont_fragment(struct sock *sk, struct dst_entry *dst) +int ip_dont_fragment(const struct sock *sk, const struct dst_entry *dst) { - return inet_sk(sk)->pmtudisc == IP_PMTUDISC_DO || - (inet_sk(sk)->pmtudisc == IP_PMTUDISC_WANT && + u8 pmtudisc = READ_ONCE(inet_sk(sk)->pmtudisc); + + return pmtudisc == IP_PMTUDISC_DO || + (pmtudisc == IP_PMTUDISC_WANT && !(dst_metric_locked(dst, RTAX_MTU))); } |