]> 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>
Wed, 17 Jun 2020 19:56:48 +0000 (21:56 +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>
src/msg/async/ProtocolV2.cc
src/msg/async/ProtocolV2.h

index 43f02069446a7c7f60345bb3ca5e297d6ce1d75c..e2a5ac6ea3e3cbddf8797d965efcae0c42c96dcc 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),
@@ -930,14 +930,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 e54d846abe77c8d24b09c5bd26d44edca8eb5a9f..bb84c161ec97deed319733dfc5f75171b9211444 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;