Commit aa3a0c8c authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

tcp: get_openreq[46]() changes

When request sockets are no longer in a per listener hash table
but on regular TCP ehash, we need to access listener uid
through req->rsk_listener

get_openreq6() also gets a const for its request socket argument.
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9cfd0860
...@@ -1637,7 +1637,6 @@ struct tcp_iter_state { ...@@ -1637,7 +1637,6 @@ struct tcp_iter_state {
enum tcp_seq_states state; enum tcp_seq_states state;
struct sock *syn_wait_sk; struct sock *syn_wait_sk;
int bucket, offset, sbucket, num; int bucket, offset, sbucket, num;
kuid_t uid;
loff_t last_pos; loff_t last_pos;
}; };
......
...@@ -1871,7 +1871,6 @@ static void *listening_get_next(struct seq_file *seq, void *cur) ...@@ -1871,7 +1871,6 @@ static void *listening_get_next(struct seq_file *seq, void *cur)
spin_lock_bh(&icsk->icsk_accept_queue.syn_wait_lock); spin_lock_bh(&icsk->icsk_accept_queue.syn_wait_lock);
if (reqsk_queue_len(&icsk->icsk_accept_queue)) { if (reqsk_queue_len(&icsk->icsk_accept_queue)) {
start_req: start_req:
st->uid = sock_i_uid(sk);
st->syn_wait_sk = sk; st->syn_wait_sk = sk;
st->state = TCP_SEQ_STATE_OPENREQ; st->state = TCP_SEQ_STATE_OPENREQ;
st->sbucket = 0; st->sbucket = 0;
...@@ -2151,7 +2150,7 @@ void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo) ...@@ -2151,7 +2150,7 @@ void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo)
EXPORT_SYMBOL(tcp_proc_unregister); EXPORT_SYMBOL(tcp_proc_unregister);
static void get_openreq4(const struct request_sock *req, static void get_openreq4(const struct request_sock *req,
struct seq_file *f, int i, kuid_t uid) struct seq_file *f, int i)
{ {
const struct inet_request_sock *ireq = inet_rsk(req); const struct inet_request_sock *ireq = inet_rsk(req);
long delta = req->rsk_timer.expires - jiffies; long delta = req->rsk_timer.expires - jiffies;
...@@ -2168,7 +2167,8 @@ static void get_openreq4(const struct request_sock *req, ...@@ -2168,7 +2167,8 @@ static void get_openreq4(const struct request_sock *req,
1, /* timers active (only the expire timer) */ 1, /* timers active (only the expire timer) */
jiffies_delta_to_clock_t(delta), jiffies_delta_to_clock_t(delta),
req->num_timeout, req->num_timeout,
from_kuid_munged(seq_user_ns(f), uid), from_kuid_munged(seq_user_ns(f),
sock_i_uid(req->rsk_listener)),
0, /* non standard timer */ 0, /* non standard timer */
0, /* open_requests have no inode */ 0, /* open_requests have no inode */
0, 0,
...@@ -2278,7 +2278,7 @@ static int tcp4_seq_show(struct seq_file *seq, void *v) ...@@ -2278,7 +2278,7 @@ static int tcp4_seq_show(struct seq_file *seq, void *v)
get_tcp4_sock(v, seq, st->num); get_tcp4_sock(v, seq, st->num);
break; break;
case TCP_SEQ_STATE_OPENREQ: case TCP_SEQ_STATE_OPENREQ:
get_openreq4(v, seq, st->num, st->uid); get_openreq4(v, seq, st->num);
break; break;
} }
out: out:
......
...@@ -1635,7 +1635,7 @@ static void tcp_v6_destroy_sock(struct sock *sk) ...@@ -1635,7 +1635,7 @@ static void tcp_v6_destroy_sock(struct sock *sk)
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
/* Proc filesystem TCPv6 sock list dumping. */ /* Proc filesystem TCPv6 sock list dumping. */
static void get_openreq6(struct seq_file *seq, static void get_openreq6(struct seq_file *seq,
struct request_sock *req, int i, kuid_t uid) const struct request_sock *req, int i)
{ {
long ttd = req->rsk_timer.expires - jiffies; long ttd = req->rsk_timer.expires - jiffies;
const struct in6_addr *src = &inet_rsk(req)->ir_v6_loc_addr; const struct in6_addr *src = &inet_rsk(req)->ir_v6_loc_addr;
...@@ -1659,7 +1659,8 @@ static void get_openreq6(struct seq_file *seq, ...@@ -1659,7 +1659,8 @@ static void get_openreq6(struct seq_file *seq,
1, /* timers active (only the expire timer) */ 1, /* timers active (only the expire timer) */
jiffies_to_clock_t(ttd), jiffies_to_clock_t(ttd),
req->num_timeout, req->num_timeout,
from_kuid_munged(seq_user_ns(seq), uid), from_kuid_munged(seq_user_ns(seq),
sock_i_uid(req->rsk_listener)),
0, /* non standard timer */ 0, /* non standard timer */
0, /* open_requests have no inode */ 0, /* open_requests have no inode */
0, req); 0, req);
...@@ -1773,7 +1774,7 @@ static int tcp6_seq_show(struct seq_file *seq, void *v) ...@@ -1773,7 +1774,7 @@ static int tcp6_seq_show(struct seq_file *seq, void *v)
get_tcp6_sock(seq, v, st->num); get_tcp6_sock(seq, v, st->num);
break; break;
case TCP_SEQ_STATE_OPENREQ: case TCP_SEQ_STATE_OPENREQ:
get_openreq6(seq, v, st->num, st->uid); get_openreq6(seq, v, st->num);
break; break;
} }
out: out:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment