]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/net/timewait_sock.h
Linux 2.6.28-rc4
[linux-2.6-omap-h63xx.git] / include / net / timewait_sock.h
index 2544281e1d5e60f3e8b60ff1006327135c452576..1e1ee3253fd8fd9a46d24778f9534e7c042f98a4 100644 (file)
 #include <net/sock.h>
 
 struct timewait_sock_ops {
-       kmem_cache_t    *twsk_slab;
+       struct kmem_cache       *twsk_slab;
        unsigned int    twsk_obj_size;
        int             (*twsk_unique)(struct sock *sk,
                                       struct sock *sktw, void *twp);
+       void            (*twsk_destructor)(struct sock *sk);
 };
 
 static inline int twsk_unique(struct sock *sk, struct sock *sktw, void *twp)
@@ -28,4 +29,13 @@ static inline int twsk_unique(struct sock *sk, struct sock *sktw, void *twp)
        return 0;
 }
 
+static inline void twsk_destructor(struct sock *sk)
+{
+       BUG_ON(sk == NULL);
+       BUG_ON(sk->sk_prot == NULL);
+       BUG_ON(sk->sk_prot->twsk_prot == NULL);
+       if (sk->sk_prot->twsk_prot->twsk_destructor != NULL)
+               sk->sk_prot->twsk_prot->twsk_destructor(sk);
+}
+
 #endif /* _TIMEWAIT_SOCK_H */