]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async/ProtocolV2: store supported features instead of required
authorIlya Dryomov <idryomov@gmail.com>
Mon, 20 Apr 2020 18:45:01 +0000 (20:45 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 23 Jun 2020 07:21:49 +0000 (09:21 +0200)
We aren't interested in peer_required_features anywhere outside
_handle_peer_banner_payload() -- once we know there is no mismatch,
it's all about peer_supported_features.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit fd5d28f9b6d8f70ed30a07201146b0dcf97e0fe4)

src/msg/async/ProtocolV2.cc
src/msg/async/ProtocolV2.h

index 7dad64510deaa919216ef2586a2a126dacf0d4de..64a9579664fba4c1c0a941d27b21393de076d70e 100644 (file)
@@ -81,7 +81,7 @@ if(connection->interceptor) { \
 ProtocolV2::ProtocolV2(AsyncConnection *connection)
     : Protocol(2, connection),
       state(NONE),
-      peer_required_features(0),
+      peer_supported_features(0),
       client_cookie(0),
       server_cookie(0),
       global_seq(0),
@@ -927,14 +927,11 @@ CtPtr ProtocolV2::_handle_peer_banner_payload(rx_buffer_t &&buffer, int r) {
     return nullptr;
   }
 
-  this->peer_required_features = peer_required_features;
-  if (this->peer_required_features == 0) {
+  this->peer_supported_features = peer_supported_features;
+  if (peer_required_features == 0) {
     this->connection_features = msgr2_required;
   }
 
-  // at this point we can change how the client protocol behaves based on
-  // this->peer_required_features
-
   if (state == BANNER_CONNECTING) {
     state = HELLO_CONNECTING;
   }
index 3a67924510608f02f9578d9bed323b9ed9481361..d9a49d0e9d9f46a9c29ce4688316b2aec28b4e9b 100644 (file)
@@ -70,7 +70,7 @@ private:
 
   entity_name_t peer_name;
   State state;
-  uint64_t peer_required_features;
+  uint64_t peer_supported_features;  // CEPH_MSGR2_FEATURE_*
 
   uint64_t client_cookie;
   uint64_t server_cookie;