From 8c3365c04af55fe7760d613a8e7541447278e558 Mon Sep 17 00:00:00 2001 From: haodong Date: Thu, 11 Aug 2016 10:53:09 +0800 Subject: [PATCH] kv: reset 'm_total_bytes' when reloading. Signed-off-by: Haodong Tang --- src/kv/MemDB.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/kv/MemDB.cc b/src/kv/MemDB.cc index b055bf950f4fcc..6c246672d5c86f 100644 --- a/src/kv/MemDB.cc +++ b/src/kv/MemDB.cc @@ -114,18 +114,20 @@ int MemDB::_load() } ssize_t file_size = st.st_size; - ssize_t bytes_done = 0; - while (bytes_done < file_size) { + ssize_t bytes_key_done = 0; + ssize_t bytes_data_done = 0; + while ((bytes_key_done + bytes_data_done) < file_size) { string key; bufferptr datap; - bytes_done += ::decode_file(fd, key); - bytes_done += ::decode_file(fd, datap); + bytes_key_done += ::decode_file(fd, key); + bytes_data_done += ::decode_file(fd, datap); dout(10) << __func__ << " Key:"<< key << dendl; m_btree[key] = datap; m_total_bytes += datap.length(); } + m_total_bytes = bytes_data_done; VOID_TEMP_FAILURE_RETRY(::close(fd)); return 0; }