diff options
Diffstat (limited to 'net/ipv4/inet_connection_sock.c')
-rw-r--r-- | net/ipv4/inet_connection_sock.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index a56b8e6e866a..12e502cbfdc7 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c | |||
@@ -408,7 +408,7 @@ struct dst_entry *inet_csk_route_req(struct sock *sk, | |||
408 | struct net *net = sock_net(sk); | 408 | struct net *net = sock_net(sk); |
409 | int flags = inet_sk_flowi_flags(sk); | 409 | int flags = inet_sk_flowi_flags(sk); |
410 | 410 | ||
411 | flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark, | 411 | flowi4_init_output(fl4, sk->sk_bound_dev_if, ireq->ir_mark, |
412 | RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, | 412 | RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, |
413 | sk->sk_protocol, | 413 | sk->sk_protocol, |
414 | flags, | 414 | flags, |
@@ -445,7 +445,7 @@ struct dst_entry *inet_csk_route_child_sock(struct sock *sk, | |||
445 | 445 | ||
446 | rcu_read_lock(); | 446 | rcu_read_lock(); |
447 | opt = rcu_dereference(newinet->inet_opt); | 447 | opt = rcu_dereference(newinet->inet_opt); |
448 | flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark, | 448 | flowi4_init_output(fl4, sk->sk_bound_dev_if, inet_rsk(req)->ir_mark, |
449 | RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, | 449 | RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, |
450 | sk->sk_protocol, inet_sk_flowi_flags(sk), | 450 | sk->sk_protocol, inet_sk_flowi_flags(sk), |
451 | (opt && opt->opt.srr) ? opt->opt.faddr : ireq->ir_rmt_addr, | 451 | (opt && opt->opt.srr) ? opt->opt.faddr : ireq->ir_rmt_addr, |
@@ -680,6 +680,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk, | |||
680 | inet_sk(newsk)->inet_sport = htons(inet_rsk(req)->ir_num); | 680 | inet_sk(newsk)->inet_sport = htons(inet_rsk(req)->ir_num); |
681 | newsk->sk_write_space = sk_stream_write_space; | 681 | newsk->sk_write_space = sk_stream_write_space; |
682 | 682 | ||
683 | newsk->sk_mark = inet_rsk(req)->ir_mark; | ||
684 | |||
683 | newicsk->icsk_retransmits = 0; | 685 | newicsk->icsk_retransmits = 0; |
684 | newicsk->icsk_backoff = 0; | 686 | newicsk->icsk_backoff = 0; |
685 | newicsk->icsk_probes_out = 0; | 687 | newicsk->icsk_probes_out = 0; |