]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd/cache/pwl: fix parameter type to update argument 38721/head
authorChangcheng Liu <changcheng.liu@aliyun.com>
Thu, 7 Jan 2021 09:00:47 +0000 (17:00 +0800)
committerChangcheng Liu <changcheng.liu@aliyun.com>
Thu, 14 Jan 2021 02:04:19 +0000 (10:04 +0800)
Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
src/librbd/cache/pwl/AbstractWriteLog.cc
src/librbd/cache/pwl/AbstractWriteLog.h
src/librbd/cache/pwl/rwl/WriteLog.cc
src/librbd/cache/pwl/ssd/WriteLog.cc

index 9a15b05788a1dcf252068bd988be259a65580447..e038a3fd65d1b3138e30a8111854e73eab6d4507 100644 (file)
@@ -338,7 +338,7 @@ void AbstractWriteLog<I>::arm_periodic_stats() {
 }
 
 template <typename I>
-void AbstractWriteLog<I>::update_entries(std::shared_ptr<GenericLogEntry> log_entry,
+void AbstractWriteLog<I>::update_entries(std::shared_ptr<GenericLogEntry> *log_entry,
     WriteLogCacheEntry *cache_entry, std::map<uint64_t, bool> &missing_sync_points,
     std::map<uint64_t, std::shared_ptr<SyncPointLogEntry>> &sync_point_entries,
     int entry_index) {
@@ -347,7 +347,7 @@ void AbstractWriteLog<I>::update_entries(std::shared_ptr<GenericLogEntry> log_en
       ldout(m_image_ctx.cct, 20) << "Entry " << entry_index
                                  << " is a sync point. cache_entry=[" << *cache_entry << "]" << dendl;
       auto sync_point_entry = std::make_shared<SyncPointLogEntry>(cache_entry->sync_gen_number);
-      log_entry = sync_point_entry;
+      *log_entry = sync_point_entry;
       sync_point_entries[cache_entry->sync_gen_number] = sync_point_entry;
       missing_sync_points.erase(cache_entry->sync_gen_number);
       m_current_sync_gen = cache_entry->sync_gen_number;
@@ -357,7 +357,7 @@ void AbstractWriteLog<I>::update_entries(std::shared_ptr<GenericLogEntry> log_en
       auto write_entry =
         m_builder->create_write_log_entry(nullptr, cache_entry->image_offset_bytes, cache_entry->write_bytes);
       write_data_to_buffer(write_entry, cache_entry);
-      log_entry = write_entry;
+      *log_entry = write_entry;
     } else if (cache_entry->is_writesame()) {
       ldout(m_image_ctx.cct, 20) << "Entry " << entry_index
                                  << " is a write same. cache_entry=[" << *cache_entry << "]" << dendl;
@@ -365,14 +365,14 @@ void AbstractWriteLog<I>::update_entries(std::shared_ptr<GenericLogEntry> log_en
         m_builder->create_writesame_log_entry(nullptr, cache_entry->image_offset_bytes,
                                               cache_entry->write_bytes, cache_entry->ws_datalen);
       write_data_to_buffer(ws_entry, cache_entry);
-      log_entry = ws_entry;
+      *log_entry = ws_entry;
     } else if (cache_entry->is_discard()) {
       ldout(m_image_ctx.cct, 20) << "Entry " << entry_index
                                  << " is a discard. cache_entry=[" << *cache_entry << "]" << dendl;
       auto discard_entry =
         std::make_shared<DiscardLogEntry>(nullptr, cache_entry->image_offset_bytes, cache_entry->write_bytes,
                                           m_discard_granularity_bytes);
-      log_entry = discard_entry;
+      *log_entry = discard_entry;
     } else {
       lderr(m_image_ctx.cct) << "Unexpected entry type in entry " << entry_index
                              << ", cache_entry=[" << *cache_entry << "]" << dendl;
index 52b24dee3c2980f9a8226eda48ba33c3f11f6af8..60accc47ce1da0e348934146592a702559f29376 100644 (file)
@@ -331,7 +331,7 @@ protected:
   void wake_up();
 
   void update_entries(
-      std::shared_ptr<pwl::GenericLogEntry> log_entry,
+      std::shared_ptr<pwl::GenericLogEntry> *log_entry,
       pwl::WriteLogCacheEntry *cache_entry,
       std::map<uint64_t, bool> &missing_sync_points,
       std::map<uint64_t,
index c597464f9a87b0734395205b3dbd6dfcb7da69e6..ebe82c83fa9fc86b9521b73a6a028a43d600c1b0 100644 (file)
@@ -422,7 +422,7 @@ void WriteLog<I>::load_existing_entries(DeferredContexts &later) {
     std::shared_ptr<GenericLogEntry> log_entry = nullptr;
     ceph_assert(pmem_entry->entry_index == entry_index);
 
-    this->update_entries(log_entry, pmem_entry, missing_sync_points,
+    this->update_entries(&log_entry, pmem_entry, missing_sync_points,
         sync_point_entries, entry_index);
 
     log_entry->ram_entry = *pmem_entry;
index c7d56f3dd3d5334039e355a223d441981851d97f..8458831248913b139a68956a04b3240ffeaf35a5 100644 (file)
@@ -270,7 +270,7 @@ void WriteLog<I>::load_existing_entries(pwl::DeferredContexts &later) {
     std::shared_ptr<GenericLogEntry> log_entry = nullptr;
 
     for (auto it = ssd_log_entries.begin(); it != ssd_log_entries.end(); ++it) {
-      this->update_entries(log_entry, &*it, missing_sync_points,
+      this->update_entries(&log_entry, &*it, missing_sync_points,
                            sync_point_entries, curr_log_pos);
       log_entry->ram_entry = *it;
       log_entry->log_entry_index = curr_log_pos;