]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: use structured binding
authorKefu Chai <kchai@redhat.com>
Sun, 6 Oct 2019 10:07:53 +0000 (18:07 +0800)
committerKefu Chai <kchai@redhat.com>
Sun, 6 Oct 2019 15:59:44 +0000 (23:59 +0800)
for better readability

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/os/bluestore/BlueFS.cc

index 9430b654b9b4cc11cefcabeebd04bf05a325dae0..3127ea7cbf816ef99290a0a69d779efb848fe614 100644 (file)
@@ -1201,24 +1201,21 @@ int BlueFS::device_migrate_to_existing(
     dout(0) << __func__ << " super to be written to " << dev_target << dendl;
   }
 
-  for (auto& p : file_map) {
+  for (auto& [ino, file_ref] : file_map) {
     //do not copy log
-    if (p.second->fnode.ino == 1) {
+    if (file_ref->fnode.ino == 1) {
       continue;
     }
-    dout(10) << __func__ << " " << p.first << " " << p.second->fnode << dendl;
+    dout(10) << __func__ << " " << ino << " " << file_ref->fnode << dendl;
 
-    auto& fnode_extents = p.second->fnode.extents;
+    auto& fnode_extents = file_ref->fnode.extents;
 
-    bool rewrite = false;
-    for (auto ext_it = fnode_extents.begin();
-        ext_it != p.second->fnode.extents.end();
-        ++ext_it) {
-      if (ext_it->bdev != dev_target && devs_source.count(ext_it->bdev)) {
-       rewrite = true;
-       break;
-      }
-    }
+    bool rewrite = std::any_of(
+      fnode_extents.begin(),
+      fnode_extents.end(),
+      [=](auto& ext) {
+       return ext.bdev != dev_target && devs_source.count(ext.bdev);
+      });
     if (rewrite) {
       dout(10) << __func__ << "  migrating" << dendl;
 
@@ -1274,19 +1271,17 @@ int BlueFS::device_migrate_to_existing(
        fnode_extents.emplace_back(dev_target_new, i.offset, i.length);
       }
     } else {
-      for (auto ext_it = fnode_extents.begin();
-          ext_it != p.second->fnode.extents.end();
-          ++ext_it) {
-       if (dev_target != dev_target_new && ext_it->bdev == dev_target) {
+      for (auto& ext : fnode_extents) {
+       if (dev_target != dev_target_new && ext.bdev == dev_target) {
          dout(20) << __func__ << "  " << " ... adjusting extent 0x"
-                  << std::hex << ext_it->offset << std::dec
+                  << std::hex << ext.offset << std::dec
                   << " bdev " << dev_target << " -> " << dev_target_new
                   << dendl;
-         ext_it->bdev = dev_target_new;
+         ext.bdev = dev_target_new;
        }
       }
     }
-    auto& prefer_bdev = p.second->fnode.prefer_bdev;
+    auto& prefer_bdev = file_ref->fnode.prefer_bdev;
     if (prefer_bdev != dev_target && devs_source.count(prefer_bdev)) {
       dout(20) << __func__ << "  " << " ... adjusting prefer_bdev "
               << prefer_bdev << " -> " << dev_target_new << dendl;
@@ -1792,12 +1787,12 @@ void BlueFS::_compact_log_dump_metadata(bluefs_transaction_t *t,
       t->op_alloc_add(bdev_new, q.get_start(), q.get_len());
     }
   }
-  for (auto& p : file_map) {
-    if (p.first == 1)
+  for (auto& [ino, file_ref] : file_map) {
+    if (ino == 1)
       continue;
-    ceph_assert(p.first > 1);
+    ceph_assert(ino > 1);
 
-    for(auto& e : p.second->fnode.extents) {
+    for(auto& e : file_ref->fnode.extents) {
       auto bdev = e.bdev;
       auto bdev_new = bdev;
       ceph_assert(!((flags & REMOVE_WAL) && bdev == BDEV_WAL));
@@ -1819,16 +1814,16 @@ void BlueFS::_compact_log_dump_metadata(bluefs_transaction_t *t,
       }
       e.bdev = bdev_new;
     }
-    dout(20) << __func__ << " op_file_update " << p.second->fnode << dendl;
-    t->op_file_update(p.second->fnode);
+    dout(20) << __func__ << " op_file_update " << file_ref->fnode << dendl;
+    t->op_file_update(file_ref->fnode);
   }
-  for (auto& p : dir_map) {
-    dout(20) << __func__ << " op_dir_create " << p.first << dendl;
-    t->op_dir_create(p.first);
-    for (auto& q : p.second->file_map) {
-      dout(20) << __func__ << " op_dir_link " << p.first << "/" << q.first
-              << " to " << q.second->fnode.ino << dendl;
-      t->op_dir_link(p.first, q.first, q.second->fnode.ino);
+  for (auto& [path, dir_ref] : dir_map) {
+    dout(20) << __func__ << " op_dir_create " << path << dendl;
+    t->op_dir_create(path);
+    for (auto& [fname, file_ref] : dir_ref->file_map) {
+      dout(20) << __func__ << " op_dir_link " << path << "/" << fname
+              << " to " << file_ref->fnode.ino << dendl;
+      t->op_dir_link(path, fname, file_ref->fnode.ino);
     }
   }
 }