From: Sage Weil Date: Wed, 2 Jan 2019 17:55:19 +0000 (-0600) Subject: client: make blacklist detection handle TYPE_ANY entries X-Git-Tag: v14.1.0~484^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c378bd830acc353a810150542304e4fbfe2f7210;p=ceph.git client: make blacklist detection handle TYPE_ANY entries Signed-off-by: Sage Weil --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 4ee14b7f1d7..e6132327443 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -2487,12 +2487,26 @@ void Client::handle_osd_map(MOSDMap *m) const auto myaddrs = messenger->get_myaddrs(); bool new_blacklist = false; + bool prenautilus = objecter->with_osdmap( + [&](const OSDMap& o) { + return o.require_osd_release < CEPH_RELEASE_NAUTILUS; + }); if (!blacklisted) { - for (auto& a : myaddrs.v) { + for (auto a : myaddrs.v) { + // blacklist entries are always TYPE_ANY for nautilus+ + a.set_type(entity_addr_t::TYPE_ANY); if (new_blacklists.count(a)) { new_blacklist = true; break; } + if (prenautilus) { + // ...except pre-nautilus, they were TYPE_LEGACY + a.set_type(entity_addr_t::TYPE_LEGACY); + if (new_blacklists.count(a)) { + new_blacklist = true; + break; + } + } } } if (new_blacklist) {