]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/BlueStore: Fixes fake blob length after put_ref removes all the extents
authorIgor Fedotov <ifedotov@mirantis.com>
Mon, 6 Jun 2016 15:01:15 +0000 (18:01 +0300)
committerIgor Fedotov <ifedotov@mirantis.com>
Wed, 8 Jun 2016 13:40:26 +0000 (16:40 +0300)
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/bluestore_types.cc

index 416bb1435b77e5c728a50de2188c5dc9c42412bf..668320f42b356cc32f9981233a7fc969b2820c18 100644 (file)
@@ -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);
index a50b12a58a03c74ef89116bfa92d084a35349252..89849fea33ea5ab734839279c361fdbd890f8265 100644 (file)
@@ -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;
   }