Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / net / rose / rose_timer.c
index 638bb1f..b6c8f38 100644 (file)
@@ -22,7 +22,7 @@
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>
 #include <net/sock.h>
-#include <net/tcp.h>
+#include <net/tcp_states.h>
 #include <asm/system.h>
 #include <linux/fcntl.h>
 #include <linux/mm.h>
@@ -46,7 +46,7 @@ void rose_start_heartbeat(struct sock *sk)
 
 void rose_start_t1timer(struct sock *sk)
 {
-       rose_cb *rose = rose_sk(sk);
+       struct rose_sock *rose = rose_sk(sk);
 
        del_timer(&rose->timer);
 
@@ -59,7 +59,7 @@ void rose_start_t1timer(struct sock *sk)
 
 void rose_start_t2timer(struct sock *sk)
 {
-       rose_cb *rose = rose_sk(sk);
+       struct rose_sock *rose = rose_sk(sk);
 
        del_timer(&rose->timer);
 
@@ -72,7 +72,7 @@ void rose_start_t2timer(struct sock *sk)
 
 void rose_start_t3timer(struct sock *sk)
 {
-       rose_cb *rose = rose_sk(sk);
+       struct rose_sock *rose = rose_sk(sk);
 
        del_timer(&rose->timer);
 
@@ -85,7 +85,7 @@ void rose_start_t3timer(struct sock *sk)
 
 void rose_start_hbtimer(struct sock *sk)
 {
-       rose_cb *rose = rose_sk(sk);
+       struct rose_sock *rose = rose_sk(sk);
 
        del_timer(&rose->timer);
 
@@ -98,7 +98,7 @@ void rose_start_hbtimer(struct sock *sk)
 
 void rose_start_idletimer(struct sock *sk)
 {
-       rose_cb *rose = rose_sk(sk);
+       struct rose_sock *rose = rose_sk(sk);
 
        del_timer(&rose->idletimer);
 
@@ -129,7 +129,7 @@ void rose_stop_idletimer(struct sock *sk)
 static void rose_heartbeat_expiry(unsigned long param)
 {
        struct sock *sk = (struct sock *)param;
-       rose_cb *rose = rose_sk(sk);
+       struct rose_sock *rose = rose_sk(sk);
 
        bh_lock_sock(sk);
        switch (rose->state) {
@@ -138,6 +138,7 @@ static void rose_heartbeat_expiry(unsigned long param)
                   is accepted() it isn't 'dead' so doesn't get removed. */
                if (sock_flag(sk, SOCK_DESTROY) ||
                    (sk->sk_state == TCP_LISTEN && sock_flag(sk, SOCK_DEAD))) {
+                       bh_unlock_sock(sk);
                        rose_destroy_socket(sk);
                        return;
                }
@@ -166,7 +167,7 @@ static void rose_heartbeat_expiry(unsigned long param)
 static void rose_timer_expiry(unsigned long param)
 {
        struct sock *sk = (struct sock *)param;
-       rose_cb *rose = rose_sk(sk);
+       struct rose_sock *rose = rose_sk(sk);
 
        bh_lock_sock(sk);
        switch (rose->state) {