]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: put pg_log_entry_t::snaps in osd_pglog mempool
authorSage Weil <sage@redhat.com>
Tue, 6 Jun 2017 20:55:23 +0000 (16:55 -0400)
committerSage Weil <sage@redhat.com>
Wed, 7 Jun 2017 14:48:03 +0000 (10:48 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/ECTransaction.cc
src/osd/ReplicatedBackend.cc
src/osd/osd_types.cc
src/osd/osd_types.h

index 91fbf5a58d9c0f1bf03ffb4a779dbe2cdcd5f476..b23174f67fdf60c6caec2568011037cd7373cded 100644 (file)
@@ -169,6 +169,7 @@ void ECTransaction::generate_transactions(
        bufferlist bl(op.updated_snaps->second.size() * 8 + 8);
        ::encode(op.updated_snaps->second, bl);
        entry->snaps.swap(bl);
+       entry->snaps.reassign_to_mempool(mempool::mempool_osd_pglog);
       }
 
       ldpp_dout(dpp, 20) << "generate_transactions: "
index e092ca630108ae1e7d252e340dd13e263e914205..07c0d316cf6d1e69dc8c0e29e0e273ef4416d2ad 100644 (file)
@@ -361,6 +361,7 @@ void generate_transaction(
       bufferlist bl(oiter->second.updated_snaps->second.size() * 8 + 8);
       ::encode(oiter->second.updated_snaps->second, bl);
       le.snaps.swap(bl);
+      le.snaps.reassign_to_mempool(mempool::mempool_osd_pglog);
     }
   }
 
index c0ec1f8fc3c82d0359c30b4fd528be3b5c478f66..7f450005c5bdf22cda953d7e6507d85735cc3ad7 100644 (file)
@@ -3982,6 +3982,7 @@ void pg_log_entry_t::decode(bufferlist::iterator &bl)
     ::decode(snaps, bl);
     // ensure snaps does not pin a larger buffer in memory
     snaps.rebuild();
+    snaps.reassign_to_mempool(mempool::mempool_osd_pglog);
   }
 
   if (struct_v >= 8)
index c2cd5612d9b6e8b46263db90c179cf383dd184cb..cc00d2a75d1638f0542ff93d9f6eb97afe26a1a1 100644 (file)
@@ -3319,7 +3319,9 @@ struct pg_log_entry_t {
 
   pg_log_entry_t()
    : user_version(0), return_code(0), op(0),
-     invalid_hash(false), invalid_pool(false) {}
+     invalid_hash(false), invalid_pool(false) {
+    snaps.reassign_to_mempool(mempool::mempool_osd_pglog);
+  }
   pg_log_entry_t(int _op, const hobject_t& _soid,
                 const eversion_t& v, const eversion_t& pv,
                 version_t uv,
@@ -3327,8 +3329,9 @@ struct pg_log_entry_t {
                 int return_code)
    : soid(_soid), reqid(rid), version(v), prior_version(pv), user_version(uv),
      mtime(mt), return_code(return_code), op(_op),
-     invalid_hash(false), invalid_pool(false)
-     {}
+     invalid_hash(false), invalid_pool(false) {
+    snaps.reassign_to_mempool(mempool::mempool_osd_pglog);
+  }
       
   bool is_clone() const { return op == CLONE; }
   bool is_modify() const { return op == MODIFY; }