From: Sage Weil Date: Sun, 20 Jul 2014 21:11:49 +0000 (-0700) Subject: mds/SnapServer: use lock safe OSDMap accessors X-Git-Tag: v0.86~213^2~68 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0dfe6d6fbcd7e812f135f94eeb674c3be65d69f1;p=ceph.git mds/SnapServer: use lock safe OSDMap accessors Signed-off-by: Sage Weil --- 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