From: Jan Fajerski Date: Wed, 28 Jun 2017 16:19:53 +0000 (+0200) Subject: mds/MDSMap: use find in is_data_pool X-Git-Tag: ses5-milestone9~1^2~27^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fe6d71cd20b549a643709cc8e3b2658541a744b7;p=ceph.git mds/MDSMap: use find in is_data_pool 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 --- diff --git a/src/mds/MDSMap.h b/src/mds/MDSMap.h index e99be2be67b5..93fd1ce73f2f 100644 --- a/src/mds/MDSMap.h +++ b/src/mds/MDSMap.h @@ -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 {