Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
request_sock_queue Struct Reference

#include <request_sock.h>

Data Fields

struct request_sockrskq_accept_head
 
struct request_sockrskq_accept_tail
 
rwlock_t syn_wait_lock
 
u8 rskq_defer_accept
 
struct listen_socklisten_opt
 
struct fastopen_queuefastopenq
 

Detailed Description

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.

Field Documentation

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.


The documentation for this struct was generated from the following file: