From 9274e94eb4a6f58eedeff0d4ec49c0da17cd4bb3 Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Mon, 6 Jun 2016 18:01:15 +0300 Subject: [PATCH] os/BlueStore: Fixes fake blob length after put_ref removes all the extents Signed-off-by: Igor Fedotov --- src/os/bluestore/BlueStore.cc | 1 - src/os/bluestore/bluestore_types.cc | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 416bb1435b77e..668320f42b356 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -3376,7 +3376,6 @@ int BlueStore::_blob2read_to_extents2read( uint64_t x_offs = cur->blob_xoffset; while (l > 0 && ext_it != ext_end) { - assert(blob->length >= ext_pos + r_offs); auto plen = blob->get_aligned_payload_length(block_size); assert(plen >= ext_pos + r_offs); uint64_t r_len = MIN(plen - ext_pos - r_offs, ext_it->length - r_offs); diff --git a/src/os/bluestore/bluestore_types.cc b/src/os/bluestore/bluestore_types.cc index a50b12a58a03c..89849fea33ea5 100644 --- a/src/os/bluestore/bluestore_types.cc +++ b/src/os/bluestore/bluestore_types.cc @@ -557,7 +557,7 @@ void bluestore_blob_t::put_ref( } extents.resize(1); extents[0].offset = bluestore_pextent_t::INVALID_OFFSET; - extents[0].length = this->length; + extents[0].length = pos; return; } -- 2.39.5