]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
clear OPEN bit on close
authorPatience Warnick <patience@cranium.pelton.net>
Mon, 14 Jan 2008 17:52:31 +0000 (09:52 -0800)
committerPatience Warnick <patience@cranium.pelton.net>
Mon, 14 Jan 2008 17:52:31 +0000 (09:52 -0800)
src/kernel/ktcp.c

index 1f2dcfa04fddca49ac1d81e3f901d1b5b0de5702..710638069e835ada7e689a22d095e64fc906c564 100644 (file)
@@ -61,11 +61,15 @@ static void ceph_write_space(struct sock *sk)
 static void ceph_state_change(struct sock *sk)
 {
         struct ceph_connection *con = (struct ceph_connection *)sk->sk_user_data;
+       if (con == NULL)
+               return;
 
         dout(30, "ceph_state_change %p state = %lu sk_state = %u\n", 
             con, con->state, sk->sk_state);
         switch (sk->sk_state) {
                case TCP_CLOSE:
+                       set_bit(CLOSED, &con->state);
+                       clear_bit(OPEN, &con->state);
                        break;
                case TCP_CLOSE_WAIT:
                        set_bit(CLOSING, &con->state);