]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/ECBackend: only need check missing_loc when doing recovery 12526/head
authorhuangjun <hjwsm1989@gmail.com>
Fri, 16 Dec 2016 10:14:23 +0000 (18:14 +0800)
committerhuangjun <hjwsm1989@gmail.com>
Fri, 16 Dec 2016 10:14:23 +0000 (18:14 +0800)
Signed-off-by: huangjun <hjwsm1989@gmail.com>
src/osd/ECBackend.cc

index c579a47f08629778bd296ee955d0970baa02ee39..c6103dcf4af8aa80a74bcb2a5dbdce86f855d3f6 100644 (file)
@@ -1445,9 +1445,6 @@ int ECBackend::get_min_avail_to_read_shards(
   // Make sure we don't do redundant reads for recovery
   assert(!for_recovery || !do_redundant_reads);
 
-  map<hobject_t, set<pg_shard_t>, hobject_t::BitwiseComparator>::const_iterator miter =
-    get_parent()->get_missing_loc_shards().find(hoid);
-
   set<int> have;
   map<shard_id_t, pg_shard_t> shards;
 
@@ -1485,6 +1482,8 @@ int ECBackend::get_min_avail_to_read_shards(
       }
     }
 
+    map<hobject_t, set<pg_shard_t>, hobject_t::BitwiseComparator>::const_iterator miter =
+      get_parent()->get_missing_loc_shards().find(hoid);
     if (miter != get_parent()->get_missing_loc_shards().end()) {
       for (set<pg_shard_t>::iterator i = miter->second.begin();
           i != miter->second.end();