]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/BlueStore: do not cow_rmw_tail at or past eof
authorSage Weil <sage@redhat.com>
Thu, 3 Mar 2016 15:13:51 +0000 (10:13 -0500)
committerSage Weil <sage@redhat.com>
Fri, 11 Mar 2016 15:41:38 +0000 (10:41 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index afca750451b12c28665f0e03a09a88506ea34104..078de2998b4988cc87f2c4eb961db9f63e04168d 100644 (file)
@@ -5174,7 +5174,8 @@ int BlueStore::_do_allocate(
     } else {
       dout(20) << "  tail shared, but no COW needed" << dendl;
     }
-    if (cow_offset_raw & ~block_mask) {
+    if (cow_offset_raw < o->onode.size &&
+       (cow_offset_raw & ~block_mask)) {
       *cow_rmw_tail = bp->second.offset + cow_offset_raw - bp->first;
       dout(20) << "  cow_rmw_tail " << *cow_rmw_tail
               << " from " << bp->second << dendl;