From d746a445a5f0891c20dbf45b07893927bd1733a9 Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Fri, 10 Jun 2016 14:49:42 +0300 Subject: [PATCH] os/bluestore: improves compressed_original parameter calculation, makes it relevant to storeded one Signed-off-by: Igor Fedotov --- src/os/bluestore/BlueStore.cc | 13 +++++++++---- src/test/objectstore/store_test.cc | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index f1c57249e623a..9fe6f8f35d321 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -5969,18 +5969,23 @@ void BlueStore::_wctx_finish( for (auto &l : wctx->lex_old) { bluestore_blob_t *b = c->get_blob_ptr(o, l.blob); vector r; + bool compressed = b->is_compressed(); b->put_ref(l.offset, l.length, min_alloc_size, &r); txc->statfs_delta.stored() -= l.length; + if (compressed) { + txc->statfs_delta.compressed_original() -= l.length; + } for (auto e : r) { dout(20) << __func__ << " release " << e << dendl; txc->released.insert(e.offset, e.length); txc->statfs_delta.allocated() -= e.length; + if (compressed) { + txc->statfs_delta.compressed_allocated() -= e.length; + } } if (b->ref_map.empty()) { - if (b->is_compressed()) { - txc->statfs_delta.compressed() -= b->get_payload_length(); - txc->statfs_delta.compressed_original() -= b->length; - txc->statfs_delta.compressed_allocated() -= b->get_ondisk_length(); + if (compressed) { + txc->statfs_delta.compressed() -= b->get_payload_length(); } dout(20) << __func__ << " rm blob " << *b << dendl; if (l.blob >= 0) { diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index c0220d22db1c7..44d6ee2ad1ad0 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -1192,7 +1192,7 @@ TEST_P(StoreTest, BluestoreStatFSTest) { ASSERT_EQ(0x20000, statfs.allocated); ASSERT_EQ(available0 - 0x20000, statfs.available); ASSERT_LE(statfs.compressed, 0x10000); - ASSERT_EQ(0x30000, statfs.compressed_original); + ASSERT_EQ(0x30000 - 9, statfs.compressed_original); ASSERT_EQ(statfs.compressed_allocated, 0x10000); } { @@ -1213,7 +1213,7 @@ TEST_P(StoreTest, BluestoreStatFSTest) { ASSERT_EQ(0x30000, statfs.allocated); ASSERT_EQ(available0 - 0x30000, statfs.available); ASSERT_LE(statfs.compressed, 0x10000); - ASSERT_EQ(0x30000, statfs.compressed_original); + ASSERT_EQ(0x30000 - 9 - 0x1000, statfs.compressed_original); ASSERT_EQ(statfs.compressed_allocated, 0x10000); } { -- 2.39.5