]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: clean up mutex naming for OSDShard
authorSage Weil <sage@redhat.com>
Tue, 20 Feb 2018 21:20:00 +0000 (15:20 -0600)
committerSage Weil <sage@redhat.com>
Wed, 4 Apr 2018 13:26:55 +0000 (08:26 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/OSD.h

index 32cf018d25a94ef65307e32f328bec6f5cd17405..a18dd24312c319b27a6330a01ddd2dd3b7541941 100644 (file)
@@ -1928,15 +1928,10 @@ OSD::OSD(CephContext *cct_, ObjectStore *store_,
   // initialize shards
   num_shards = get_num_op_shards();
   for (uint32_t i = 0; i < num_shards; i++) {
-    char lock_name[128] = {0};
-    snprintf(lock_name, sizeof(lock_name), "OSDShard.%d::sdata_lock", i);
-    char order_lock[128] = {0};
-    snprintf(order_lock, sizeof(order_lock), "OSDShard.%d::sdata_op_ordering_lock", i);
     OSDShard *one_shard = new OSDShard(
       i,
       cct,
       this,
-      lock_name, order_lock,
       cct->_conf->osd_op_pq_max_tokens_per_priority,
       cct->_conf->osd_op_pq_min_cost,
       op_queue);
index aea1ec0e2941f7fb879c23d0586205f4a0bbebd2..85d5daaf25d8fe31e9a5ca94b1a696f5de586d1e 100644 (file)
@@ -1054,9 +1054,14 @@ struct OSDShard {
   const unsigned shard_id;
   CephContext *cct;
   OSD *osd;
+
+  string shard_name;
+
+  string sdata_lock_name;
   Mutex sdata_lock;
   Cond sdata_cond;
 
+  string sdata_op_ordering_lock_name;
   Mutex sdata_op_ordering_lock;   ///< protects all members below
 
   OSDMapRef osdmap;
@@ -1125,15 +1130,17 @@ struct OSDShard {
     int id,
     CephContext *cct,
     OSD *osd,
-    string lock_name, string ordering_lock,
     uint64_t max_tok_per_prio, uint64_t min_cost,
     io_queue opqueue)
     : shard_id(id),
       cct(cct),
       osd(osd),
-      sdata_lock(lock_name.c_str(), false, true, false, cct),
-      sdata_op_ordering_lock(ordering_lock.c_str(), false, true,
-                            false, cct) {
+      shard_name(string("OSDShard.") + stringify(id)),
+      sdata_lock_name(shard_name + "::sdata_lock"),
+      sdata_lock(sdata_lock_name.c_str(), false, true, false, cct),
+      sdata_op_ordering_lock_name(shard_name + "::sdata_op_ordering_lock"),
+      sdata_op_ordering_lock(sdata_op_ordering_lock_name.c_str(), false, true,
+                            false, cct),
     if (opqueue == io_queue::weightedpriority) {
       pqueue = std::make_unique<
        WeightedPriorityQueue<OpQueueItem,uint64_t>>(