From: Sage Weil Date: Mon, 2 Apr 2018 20:44:57 +0000 (-0500) Subject: osd: clean up osdmap_lock X-Git-Tag: v13.1.0~390^2~9 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=0724072b16478ff2106b206eaa29a286c75cb6db;p=ceph-ci.git osd: clean up osdmap_lock Comment rules and take lock during init/shutdown (nice but not necessary). Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index fe255789677..8b93650b46c 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2524,6 +2524,7 @@ int OSD::init() // initialize osdmap references in sharded wq for (auto& shard : shards) { + Mutex::Locker l(shard->osdmap_lock); shard->shard_osdmap = osdmap; } @@ -3388,6 +3389,7 @@ int OSD::shutdown() osdmap = OSDMapRef(); for (auto s : shards) { + Mutex::Locker l(s->osdmap_lock); s->shard_osdmap = OSDMapRef(); } service.shutdown(); diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 0caaa7514bc..721fa5d5910 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -1113,7 +1113,7 @@ struct OSDShard { Cond sdata_cond; string osdmap_lock_name; - Mutex osdmap_lock; + Mutex osdmap_lock; ///< protect shard_osdmap updates vs users w/o shard_lock OSDMapRef shard_osdmap; OSDMapRef get_osdmap() {