From: Igor Fedotov Date: Mon, 6 Jun 2016 15:01:15 +0000 (+0300) Subject: os/BlueStore: Fixes fake blob length after put_ref removes all the extents X-Git-Tag: v11.0.0~271^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9274e94eb4a6f58eedeff0d4ec49c0da17cd4bb3;p=ceph.git os/BlueStore: Fixes fake blob length after put_ref removes all the extents Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 416bb1435b77..668320f42b35 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 a50b12a58a03..89849fea33ea 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; }