]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: ExtentMap: use normal iterator for reshard loop
authorSage Weil <sage@redhat.com>
Fri, 27 Jan 2017 21:46:04 +0000 (16:46 -0500)
committerSage Weil <sage@redhat.com>
Thu, 2 Feb 2017 15:12:08 +0000 (10:12 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 6eedbce2b69936a8f371fa2fbe2a45eaa6e90124..a9929acc6d8a32a60a8cb5b5e28cd2d0cc9d822e 100644 (file)
@@ -1896,18 +1896,18 @@ void BlueStore::ExtentMap::reshard(
   unsigned offset = 0;
   vector<bluestore_onode_t::shard_info> new_shard_info;
   unsigned max_blob_end = 0;
-  for (auto& e: extent_map) {
-    dout(30) << " extent " << e << dendl;
+  for (auto e = extent_map.begin(); e != extent_map.end(); ++e) {
+    dout(30) << " extent " << *e << dendl;
 
     // unspan spanning blobs
-    if (e.blob->is_spanning()) {
-      spanning_blob_map.erase(e.blob->id);
-      e.blob->id = -1;
-      dout(30) << __func__ << " un-spanning " << *e.blob << dendl;
+    if (e->blob->is_spanning()) {
+      spanning_blob_map.erase(e->blob->id);
+      e->blob->id = -1;
+      dout(30) << __func__ << " un-spanning " << *e->blob << dendl;
     }
 
     // disfavor shard boundaries that span a blob
-    bool would_span = (e.logical_offset < max_blob_end) || e.blob_offset;
+    bool would_span = (e->logical_offset < max_blob_end) || e->blob_offset;
     if (estimate &&
        estimate + extent_avg > target + (would_span ? slop : 0)) {
       // new shard
@@ -1917,7 +1917,7 @@ void BlueStore::ExtentMap::reshard(
        dout(20) << __func__ << "  new shard 0x" << std::hex << offset
                 << std::dec << dendl;
       }
-      offset = e.logical_offset;
+      offset = e->logical_offset;
       new_shard_info.emplace_back(bluestore_onode_t::shard_info());
       new_shard_info.back().offset = offset;
       dout(20) << __func__ << "  new shard 0x" << std::hex << offset
@@ -1925,7 +1925,7 @@ void BlueStore::ExtentMap::reshard(
       estimate = 0;
     }
     estimate += extent_avg;
-    uint32_t be = e.blob_end();
+    uint32_t be = e->blob_end();
     if (be > max_blob_end) {
       max_blob_end = be;
     }