diff options
| author | Eric Dumazet <edumazet@google.com> | 2015-03-17 21:32:28 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-03-17 22:01:56 -0400 |
| commit | 4e9a578e5b6bdfa8b7fed7a41f28a86a7cffc85f (patch) | |
| tree | 2aa5dfb5e6885aaa15b6802ec6bffba15f4099f4 /net | |
| parent | e49bb337d77d54afebe4fe5b9008955e1337f83d (diff) | |
inet: add rsk_listener field to struct request_sock
Once we'll be able to lookup request sockets in ehash table,
we'll need to get access to listener which created this request.
This avoid doing a lookup to find the listener, which benefits
for a more solid SO_REUSEPORT, and is needed once we no
longer queue request sock into a listener private queue.
Note that 'struct tcp_request_sock'->listener could be reduced
to a single bit, as TFO listener should match req->rsk_listener.
TFO will no longer need to hold a reference on the listener.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
| -rw-r--r-- | net/ipv4/tcp_input.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 52b74e0eab2a..fbe518981d36 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
| @@ -5970,7 +5970,7 @@ static void tcp_openreq_init(struct request_sock *req, | |||
| 5970 | struct request_sock *inet_reqsk_alloc(const struct request_sock_ops *ops, | 5970 | struct request_sock *inet_reqsk_alloc(const struct request_sock_ops *ops, |
| 5971 | struct sock *sk_listener) | 5971 | struct sock *sk_listener) |
| 5972 | { | 5972 | { |
| 5973 | struct request_sock *req = reqsk_alloc(ops); | 5973 | struct request_sock *req = reqsk_alloc(ops, sk_listener); |
| 5974 | 5974 | ||
| 5975 | if (req) { | 5975 | if (req) { |
| 5976 | struct inet_request_sock *ireq = inet_rsk(req); | 5976 | struct inet_request_sock *ireq = inet_rsk(req); |
