]> git.apps.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>
Mon, 13 Jul 2020 12:45:38 +0000 (14:45 +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 8d7149203769ad838685267ad8d6ba3b87037281..6e3b02a88df958c33b7a2c6195a2556e9147b355 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),
@@ -918,14 +918,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 052174a6f5e2e636efd4aa2380b84d35a5a92455..4941cea5c7f130ea607728f873204db0fa5566f2 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;