Linux Kernel
3.7.1
|
#include <request_sock.h>
Data Fields | |
struct request_sock * | rskq_accept_head |
struct request_sock * | rskq_accept_tail |
rwlock_t | syn_wait_lock |
u8 | rskq_defer_accept |
struct listen_sock * | listen_opt |
struct fastopen_queue * | fastopenq |
struct request_sock_queue - queue of request_socks
- FIFO head of established children - FIFO tail of established children - User waits for some data after accept() - serializer
syn_wait_lock is necessary only to avoid proc interface having to grab the main lock sock while browsing the listening hash (otherwise it's deadlock prone).
This lock is acquired in read mode only from listening_get_next() seq_file op and it's acquired in write mode only from code that is actively changing rskq_accept_head. All readers that are holding the master sock lock don't need to grab this lock in read mode too as rskq_accept_head. writes are always protected from the main sock lock.
Definition at line 153 of file request_sock.h.
struct fastopen_queue* fastopenq |
Definition at line 160 of file request_sock.h.
struct listen_sock* listen_opt |
Definition at line 159 of file request_sock.h.
struct request_sock* rskq_accept_head |
Definition at line 154 of file request_sock.h.
struct request_sock* rskq_accept_tail |
Definition at line 155 of file request_sock.h.
u8 rskq_defer_accept |
Definition at line 157 of file request_sock.h.
rwlock_t syn_wait_lock |
Definition at line 156 of file request_sock.h.