From 198db468b070aa1d5dde4ae35561e3dfd7ec23e0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 1 Dec 2016 09:39:25 -0500 Subject: [PATCH] osd/osd_types: avoid pinning memory with pg_log_entry_t::snaps The pg_log_entry_t may stay in memory for a long time; avoid pinning a larger buffer in memory. See: http://tracker.ceph.com/issues/18093 Signed-off-by: Sage Weil --- src/osd/osd_types.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 6735a523b82..410af4457eb 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -3535,6 +3535,8 @@ void pg_log_entry_t::decode(bufferlist::iterator &bl) if (struct_v >= 7 || // for v >= 7, this is for all ops. op == CLONE) { // for v < 7, it's only present for CLONE. ::decode(snaps, bl); + // ensure snaps does not pin a larger buffer in memory + snaps.rebuild(); } if (struct_v >= 8) -- 2.47.3