From 0dfe6d6fbcd7e812f135f94eeb674c3be65d69f1 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 20 Jul 2014 14:11:49 -0700 Subject: [PATCH] mds/SnapServer: use lock safe OSDMap accessors Signed-off-by: Sage Weil --- src/mds/SnapServer.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mds/SnapServer.cc b/src/mds/SnapServer.cc index 561a006b2f16..adbccd037294 100644 --- a/src/mds/SnapServer.cc +++ b/src/mds/SnapServer.cc @@ -15,6 +15,7 @@ #include "SnapServer.h" #include "MDS.h" #include "osd/OSDMap.h" +#include "osdc/Objecter.h" #include "mon/MonClient.h" #include "include/types.h" @@ -201,11 +202,12 @@ void SnapServer::check_osd_map(bool force) map > all_purge; map > all_purged; + const OSDMap *osdmap = mds->objecter->get_osdmap_read(); for (map >::iterator p = need_to_purge.begin(); p != need_to_purge.end(); ++p) { int id = p->first; - const pg_pool_t *pi = mds->osdmap->get_pg_pool(id); + const pg_pool_t *pi = osdmap->get_pg_pool(id); for (set::iterator q = p->second.begin(); q != p->second.end(); ++q) { @@ -217,6 +219,7 @@ void SnapServer::check_osd_map(bool force) } } } + mds->objecter->put_osdmap_read(); if (!all_purged.empty()) { // prepare to remove from need_to_purge list -- 2.47.3