]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/newstore: do not set/change frag_size if there are overlays
authorSage Weil <sage@redhat.com>
Wed, 14 Oct 2015 12:41:39 +0000 (08:41 -0400)
committerSage Weil <sage@redhat.com>
Fri, 1 Jan 2016 18:05:18 +0000 (13:05 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/newstore/NewStore.cc

index 19daad887cb2b9c70807043d9ef3df24f976f562..77a870b11e745e7d7c7a999b9db1fa1735b1e7cd 100644 (file)
@@ -3491,7 +3491,8 @@ int NewStore::_do_write(TransContext *txc,
   _dump_onode(o);
   o->exists = true;
 
-  if (!o->onode.frag_size && o->onode.data_map.empty()) {
+  if (!o->onode.frag_size && o->onode.data_map.empty() &&
+      o->onode.overlay_map.empty()) {
     o->onode.frag_size = g_conf->newstore_min_frag_size;
     dout(20) << __func__ << " set frag_size " << o->onode.frag_size << dendl;
   }
@@ -4332,7 +4333,7 @@ int NewStore::_setallochint(TransContext *txc,
   o->onode.expected_write_size = expected_write_size;
   txc->write_onode(o);
 
-  if (o->onode.data_map.empty()) {
+  if (o->onode.data_map.empty() && o->onode.overlay_map.empty()) {
     // FIXME: we could do something clever with onode.frag_size here.
   }