From 5005edf80f88879de36d7f5384d103b1c68b2d82 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 2 Jun 2016 13:55:04 -0400 Subject: [PATCH] os/bluestore: fix buffercache discard bug Signed-off-by: Sage Weil --- src/os/bluestore/BlueStore.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 6149752c75b..f94821e0d90 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -455,6 +455,7 @@ void BlueStore::BufferCache::trim(uint64_t keep) { lru_list_t::iterator i = lru.end(); if (size) { + assert(i != lru.begin()); --i; } while (size > keep) { @@ -503,7 +504,7 @@ void BlueStore::BufferSpace::discard(uint64_t offset, uint64_t length) } else { _add_buffer(new Buffer(this, b->state, b->seq, end, tail)); } - cache->size -= length; + cache->size -= b->length - front; b->truncate(front); return; } else { -- 2.39.5