aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp.c
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@parallels.com>2012-04-19 03:41:32 +0000
committerDavid S. Miller <davem@davemloft.net>2012-04-21 15:52:25 -0400
commit5e6a3ce6573f0c519d1ff57df60e3877bb2d3151 (patch)
treebce0733fb197e97c6697e63fb2f30dc2692ffdf3 /net/ipv4/tcp.c
parenttcp: Repair socket queues (diff)
downloadlinux-dev-5e6a3ce6573f0c519d1ff57df60e3877bb2d3151.tar.xz
linux-dev-5e6a3ce6573f0c519d1ff57df60e3877bb2d3151.zip
tcp: Report mss_clamp with TCP_MAXSEG option in repair mode
The mss_clamp is the only connection-time negotiated option which cannot be obtained from the user space. Make the TCP_MAXSEG sockopt report one in the repair mode. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp.c')
-rw-r--r--net/ipv4/tcp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 47e2f4972f79..b4e690ddb08c 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -2659,6 +2659,8 @@ static int do_tcp_getsockopt(struct sock *sk, int level,
val = tp->mss_cache;
if (!val && ((1 << sk->sk_state) & (TCPF_CLOSE | TCPF_LISTEN)))
val = tp->rx_opt.user_mss;
+ if (tp->repair)
+ val = tp->rx_opt.mss_clamp;
break;
case TCP_NODELAY:
val = !!(tp->nonagle&TCP_NAGLE_OFF);