From 17d6a993fc17d533460c5f40f3908c708e057c18 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 23 May 2024 18:45:17 +0200 Subject: Merging upstream version 18.2.3. Signed-off-by: Daniel Baumann --- src/librados/RadosClient.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/librados/RadosClient.cc') diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc index 9abd923f9..db9143e2d 100644 --- a/src/librados/RadosClient.cc +++ b/src/librados/RadosClient.cc @@ -631,16 +631,22 @@ int librados::RadosClient::get_pool_stats(std::list& pools, return 0; } -bool librados::RadosClient::get_pool_is_selfmanaged_snaps_mode( +int librados::RadosClient::pool_is_in_selfmanaged_snaps_mode( const std::string& pool) { - bool ret = false; - objecter->with_osdmap([&](const OSDMap& osdmap) { + int r = wait_for_osdmap(); + if (r < 0) { + return r; + } + + return objecter->with_osdmap([&pool](const OSDMap& osdmap) { int64_t poolid = osdmap.lookup_pg_pool_name(pool); - if (poolid >= 0) - ret = osdmap.get_pg_pool(poolid)->is_unmanaged_snaps_mode(); + if (poolid < 0) { + return -ENOENT; + } + return static_cast( + osdmap.get_pg_pool(poolid)->is_unmanaged_snaps_mode()); }); - return ret; } int librados::RadosClient::get_fs_stats(ceph_statfs& stats) -- cgit v1.2.3