]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fix unsharing blob dirty_range args 15766/head
authorSage Weil <sage@redhat.com>
Tue, 20 Jun 2017 02:57:43 +0000 (22:57 -0400)
committerSage Weil <sage@redhat.com>
Tue, 20 Jun 2017 02:57:43 +0000 (22:57 -0400)
Fixes: http://tracker.ceph.com/issues/20227
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 2d34799662213b2a4958b1b1508301a9edee5198..498c8bb50df48cfea2968ea0c3225ea796d73361 100644 (file)
@@ -10353,7 +10353,7 @@ int BlueStore::_do_remove(
           if (b.is_shared() &&
               std::find(unshared_blobs.begin(), unshared_blobs.end(),
                         sb) != unshared_blobs.end()) {
-            dout(20) << __func__ << "  " << e << dendl;
+            dout(20) << __func__ << "  unsharing " << e << dendl;
             bluestore_blob_t& blob = e.blob->dirty_blob();
             blob.clear_flag(bluestore_blob_t::FLAG_SHARED);
             if (e.logical_offset < b_start) {
@@ -10365,7 +10365,7 @@ int BlueStore::_do_remove(
           }
         }
 
-       h->extent_map.dirty_range(b_start, b_end);
+       h->extent_map.dirty_range(b_start, b_end - b_start);
        txc->write_onode(h);
       }
     }