You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
inet: includes a sock_common in request_sock
TCP listener refactoring, part 5 : We want to be able to insert request sockets (SYN_RECV) into main ehash table instead of the per listener hash table to allow RCU lookups and remove listener lock contention. This patch includes the needed struct sock_common in front of struct request_sock This means there is no more inet6_request_sock IPv6 specific structure. Following inet_request_sock fields were renamed as they became macros to reference fields from struct sock_common. Prefix ir_ was chosen to avoid name collisions. loc_port -> ir_loc_port loc_addr -> ir_loc_addr rmt_addr -> ir_rmt_addr rmt_port -> ir_rmt_port iif -> ir_iif Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
8a29111c7c
commit
634fb979e8
@@ -70,13 +70,14 @@ struct ip_options_data {
|
||||
|
||||
struct inet_request_sock {
|
||||
struct request_sock req;
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
u16 inet6_rsk_offset;
|
||||
#endif
|
||||
__be16 loc_port;
|
||||
__be32 loc_addr;
|
||||
__be32 rmt_addr;
|
||||
__be16 rmt_port;
|
||||
#define ir_loc_addr req.__req_common.skc_rcv_saddr
|
||||
#define ir_rmt_addr req.__req_common.skc_daddr
|
||||
#define ir_loc_port req.__req_common.skc_num
|
||||
#define ir_rmt_port req.__req_common.skc_dport
|
||||
#define ir_v6_rmt_addr req.__req_common.skc_v6_daddr
|
||||
#define ir_v6_loc_addr req.__req_common.skc_v6_rcv_saddr
|
||||
#define ir_iif req.__req_common.skc_bound_dev_if
|
||||
|
||||
kmemcheck_bitfield_begin(flags);
|
||||
u16 snd_wscale : 4,
|
||||
rcv_wscale : 4,
|
||||
@@ -88,6 +89,7 @@ struct inet_request_sock {
|
||||
no_srccheck: 1;
|
||||
kmemcheck_bitfield_end(flags);
|
||||
struct ip_options_rcu *opt;
|
||||
struct sk_buff *pktopts;
|
||||
};
|
||||
|
||||
static inline struct inet_request_sock *inet_rsk(const struct request_sock *sk)
|
||||
|
||||
@@ -48,6 +48,7 @@ int inet_rtx_syn_ack(struct sock *parent, struct request_sock *req);
|
||||
/* struct request_sock - mini sock to represent a connection request
|
||||
*/
|
||||
struct request_sock {
|
||||
struct sock_common __req_common;
|
||||
struct request_sock *dl_next;
|
||||
u16 mss;
|
||||
u8 num_retrans; /* number of retransmits */
|
||||
|
||||
+2
-2
@@ -1109,8 +1109,8 @@ static inline void tcp_openreq_init(struct request_sock *req,
|
||||
ireq->wscale_ok = rx_opt->wscale_ok;
|
||||
ireq->acked = 0;
|
||||
ireq->ecn_ok = 0;
|
||||
ireq->rmt_port = tcp_hdr(skb)->source;
|
||||
ireq->loc_port = tcp_hdr(skb)->dest;
|
||||
ireq->ir_rmt_port = tcp_hdr(skb)->source;
|
||||
ireq->ir_loc_port = tcp_hdr(skb)->dest;
|
||||
}
|
||||
|
||||
void tcp_enter_memory_pressure(struct sock *sk);
|
||||
|
||||
Reference in New Issue
Block a user