]> Pileus Git - ~andy/linux/blobdiff - include/linux/tcp.h
tcp: out_of_order_queue do not use its lock
[~andy/linux] / include / linux / tcp.h
index 472120b4fac57584f30998d1be87c672607eb643..4ad0706d40ebecf98e1ca95483a79f9dd44e903c 100644 (file)
@@ -107,7 +107,6 @@ static inline void tcp_clear_options(struct tcp_options_received *rx_opt)
  * only four options will fit in a standard TCP header */
 #define TCP_NUM_SACKS 4
 
-struct tcp_cookie_values;
 struct tcp_request_sock_ops;
 
 struct tcp_request_sock {
@@ -238,6 +237,7 @@ struct tcp_sock {
 
        u32     rcv_wnd;        /* Current receiver window              */
        u32     write_seq;      /* Tail(+1) of data held in tcp send buffer */
+       u32     notsent_lowat;  /* TCP_NOTSENT_LOWAT */
        u32     pushed_seq;     /* Last pushed seq, required to talk to windows */
        u32     lost_out;       /* Lost packets                 */
        u32     sacked_out;     /* SACK'd packets                       */
@@ -248,7 +248,10 @@ struct tcp_sock {
        struct sk_buff* lost_skb_hint;
        struct sk_buff *retransmit_skb_hint;
 
-       struct sk_buff_head     out_of_order_queue; /* Out of order segments go here */
+       /* OOO segments go in this list. Note that socket lock must be held,
+        * as we do not use sk_buff_head lock.
+        */
+       struct sk_buff_head     out_of_order_queue;
 
        /* SACKs data, these 2 need to be together (see tcp_options_write) */
        struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */