]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fix gc when blob extends past eof 11282/head
authorSage Weil <sage@redhat.com>
Fri, 30 Sep 2016 21:06:47 +0000 (17:06 -0400)
committerSage Weil <sage@redhat.com>
Fri, 30 Sep 2016 21:06:47 +0000 (17:06 -0400)
This can happen if we aren't referencing the bob.  Don't try to
read what isn't logically referenced.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 51c836454fa5d7bac996caee3e929fc36d45c068..92ce9f5d905b89189397e4b39edb4b8a818d33af 100644 (file)
@@ -7571,6 +7571,9 @@ bool BlueStore::_do_write_check_depth(
       *gc_end_offset = tp->logical_offset + tp_prev->length;
     }
   }
+  if (*gc_end_offset > o->onode.size) {
+    *gc_end_offset = MAX(end_offset, o->onode.size);
+  }
   dout(20) << __func__ << " depth " << (int)depth
           << ", gc 0x" << std::hex << *gc_start_offset << "~"
           << (*gc_end_offset - *gc_start_offset)