]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
librados: fix locking on get_required_monitor_features
authorJohn Spray <john.spray@redhat.com>
Mon, 30 Apr 2018 15:35:18 +0000 (11:35 -0400)
committerKefu Chai <kchai@redhat.com>
Fri, 4 May 2018 08:39:30 +0000 (16:39 +0800)
This wasn't taking the MonClient lock: should use
with_monmap to protect access to MonClient::monmap.

Signed-off-by: John Spray <john.spray@redhat.com>
src/librados/RadosClient.cc

index cdca87909bb0086fd342716b28fbc95686c60210..95d119cc04ba28a00aaaed19f41217c5255bb47c 100644 (file)
@@ -1101,5 +1101,6 @@ int librados::RadosClient::service_daemon_update_status(
 
 mon_feature_t librados::RadosClient::get_required_monitor_features() const
 {
-  return monclient.monmap.get_required_features();
+  return monclient.with_monmap([](const MonMap &monmap) {
+      return monmap.get_required_features(); } );
 }