import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / net / ipv4 / inet_connection_sock.c
index 6acb541c90910204f02449e7500138362da6998a..cff1b0fb79b20755feebb3917bd3f530c5990af7 100644 (file)
@@ -417,12 +417,13 @@ struct dst_entry *inet_csk_route_req(struct sock *sk,
        struct net *net = sock_net(sk);
        int flags = inet_sk_flowi_flags(sk);
 
-       flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark,
+       flowi4_init_output(fl4, sk->sk_bound_dev_if, ireq->ir_mark,
                           RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE,
                           sk->sk_protocol,
                           flags,
                           (opt && opt->opt.srr) ? opt->opt.faddr : ireq->rmt_addr,
-                          ireq->loc_addr, ireq->rmt_port, inet_sk(sk)->inet_sport);
+                          ireq->loc_addr, ireq->rmt_port, inet_sk(sk)->inet_sport,
+                          sock_i_uid(sk));
        security_req_classify_flow(req, flowi4_to_flowi(fl4));
        rt = ip_route_output_flow(net, fl4, sk);
        if (IS_ERR(rt))
@@ -454,11 +455,12 @@ struct dst_entry *inet_csk_route_child_sock(struct sock *sk,
 
        rcu_read_lock();
        opt = rcu_dereference(newinet->inet_opt);
-       flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark,
+       flowi4_init_output(fl4, sk->sk_bound_dev_if, inet_rsk(req)->ir_mark,
                           RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE,
                           sk->sk_protocol, inet_sk_flowi_flags(sk),
                           (opt && opt->opt.srr) ? opt->opt.faddr : ireq->rmt_addr,
-                          ireq->loc_addr, ireq->rmt_port, inet_sk(sk)->inet_sport);
+                          ireq->loc_addr, ireq->rmt_port, inet_sk(sk)->inet_sport,
+                          sock_i_uid(sk));
        security_req_classify_flow(req, flowi4_to_flowi(fl4));
        rt = ip_route_output_flow(net, fl4, sk);
        if (IS_ERR(rt))
@@ -688,6 +690,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk,
                inet_sk(newsk)->inet_sport = inet_rsk(req)->loc_port;
                newsk->sk_write_space = sk_stream_write_space;
 
+               newsk->sk_mark = inet_rsk(req)->ir_mark;
+
                newicsk->icsk_retransmits = 0;
                newicsk->icsk_backoff     = 0;
                newicsk->icsk_probes_out  = 0;
@@ -769,7 +773,9 @@ int inet_csk_listen_start(struct sock *sk, const int nr_table_entries)
        sk->sk_state = TCP_LISTEN;
        if (!sk->sk_prot->get_port(sk, inet->inet_num)) {
                inet->inet_sport = htons(inet->inet_num);
-
+               #ifdef CONFIG_MTK_NET_LOGGING 
+        printk(KERN_WARNING "[mtk_net][socket] inet_csk_listen_start inet->inet_sport:%d,inet->inet_num:%d",inet->inet_sport,inet->inet_num);
+        #endif
                sk_dst_reset(sk);
                sk->sk_prot->hash(sk);