From ee6fe5dab62768f93aa4df6e8ba3599030139d65 Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Fri, 23 Jun 2017 13:31:08 +0800 Subject: [PATCH] os/bluestore: add sanity check to seq_bytes Signed-off-by: xie xingguo --- src/os/bluestore/BlueStore.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index ae87bab35c9..86f93a68831 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -2968,6 +2968,7 @@ void BlueStore::DeferredBatch::_discard( << " 0x" << std::hex << p->first << "~" << p->second.bl.length() << " -> 0x" << head.length() << std::dec << dendl; auto i = seq_bytes.find(p->second.seq); + assert(i != seq_bytes.end()); if (end > offset + length) { bufferlist tail; tail.substr_of(p->second.bl, offset + length - p->first, @@ -2982,6 +2983,7 @@ void BlueStore::DeferredBatch::_discard( } else { i->second -= end - offset; } + assert(i->second >= 0); p->second.bl.swap(head); } ++p; @@ -2991,6 +2993,7 @@ void BlueStore::DeferredBatch::_discard( break; } auto i = seq_bytes.find(p->second.seq); + assert(i != seq_bytes.end()); auto end = p->first + p->second.bl.length(); if (end > offset + length) { unsigned drop_front = offset + length - p->first; @@ -3010,6 +3013,7 @@ void BlueStore::DeferredBatch::_discard( << std::dec << dendl; i->second -= p->second.bl.length(); } + assert(i->second >= 0); p = iomap.erase(p); } } -- 2.39.5