summaryrefslogtreecommitdiffstats
path: root/src/librados/RadosClient.cc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-23 16:45:17 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-23 16:45:44 +0000
commit17d6a993fc17d533460c5f40f3908c708e057c18 (patch)
tree1a3bd93e0ecd74fa02f93a528fe2f87e5314c4b5 /src/librados/RadosClient.cc
parentReleasing progress-linux version 18.2.2-0progress7.99u1. (diff)
downloadceph-17d6a993fc17d533460c5f40f3908c708e057c18.tar.xz
ceph-17d6a993fc17d533460c5f40f3908c708e057c18.zip
Merging upstream version 18.2.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/librados/RadosClient.cc')
-rw-r--r--src/librados/RadosClient.cc18
1 files changed, 12 insertions, 6 deletions
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<string>& 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<int>(
+ osdmap.get_pg_pool(poolid)->is_unmanaged_snaps_mode());
});
- return ret;
}
int librados::RadosClient::get_fs_stats(ceph_statfs& stats)