]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds/MDSMap: use find in is_data_pool 15982/head
authorJan Fajerski <jfajerski@suse.com>
Wed, 28 Jun 2017 16:19:53 +0000 (18:19 +0200)
committerJan Fajerski <jfajerski@suse.com>
Thu, 29 Jun 2017 13:09:44 +0000 (15:09 +0200)
binary_search assumes that vector data_pools is ordered. add_data_pool
however only appends to the vector, so no order can be assumed.

Fixes: http://tracker.ceph.com/issues/20452
Signed-off-by: Jan Fajerski <jfajerski@suse.com>
src/mds/MDSMap.h

index e99be2be67b575f1d7e495b4b057ee59f3dc8995..93fd1ce73f2f05a8d4f191164ee724b7acfd730c 100644 (file)
@@ -314,7 +314,10 @@ public:
   int64_t get_first_data_pool() const { return *data_pools.begin(); }
   int64_t get_metadata_pool() const { return metadata_pool; }
   bool is_data_pool(int64_t poolid) const {
-    return std::binary_search(data_pools.begin(), data_pools.end(), poolid);
+    auto p = std::find(data_pools.begin(), data_pools.end(), poolid);
+    if (p == data_pools.end())
+      return false;
+    return true;
   }
 
   bool pool_in_use(int64_t poolid) const {