libceph: clear con->peer_global_seq on RESETSESSION
authorIlya Dryomov <idryomov@gmail.com>
Wed, 11 Nov 2020 13:08:59 +0000 (14:08 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 14 Dec 2020 22:21:48 +0000 (23:21 +0100)
con->peer_global_seq is part of session state.  Clear it when
the server tells us to reset, not just in ceph_con_close().

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
net/ceph/messenger.c

index b1a9361..1d4a51b 100644 (file)
@@ -659,11 +659,12 @@ static void ceph_con_reset_session(struct ceph_connection *con)
        WARN_ON(con->out_msg);
        ceph_msg_remove_list(&con->out_queue);
        ceph_msg_remove_list(&con->out_sent);
-
-       con->connect_seq = 0;
        con->out_seq = 0;
        con->in_seq = 0;
        con->in_seq_acked = 0;
+
+       con->connect_seq = 0;
+       con->peer_global_seq = 0;
 }
 
 /*
@@ -682,7 +683,6 @@ void ceph_con_close(struct ceph_connection *con)
 
        ceph_con_reset_protocol(con);
        ceph_con_reset_session(con);
-       con->peer_global_seq = 0;
        cancel_con(con);
        mutex_unlock(&con->mutex);
 }