]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote branch 'origin/wip-rbd-read'
authorJosh Durgin <josh.durgin@inktank.com>
Mon, 12 Nov 2012 18:41:30 +0000 (10:41 -0800)
committerJosh Durgin <josh.durgin@inktank.com>
Mon, 12 Nov 2012 18:41:35 +0000 (10:41 -0800)
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
1  2 
src/librbd/internal.cc
src/osdc/ObjectCacher.cc

Simple merge
index 0cf6b523696425e8d5adf1b26f1a040d817f8cf3,012c6a925931e3584560bbaf720c9414ddd2ad58..80679e018ecad7daa67d2530826bfee85cf350f4
@@@ -693,8 -727,17 +727,18 @@@ void ObjectCacher::bh_write_commit(int6
      ldout(cct, 7) << "bh_write_commit no object cache" << dendl;
    } else {
      Object *ob = objects[poolid][oid];
 +    int was_dirty_or_tx = ob->oset->dirty_or_tx;
      
+     if (!ob->exists) {
+       ldout(cct, 10) << "bh_write_commit marking exists on " << *ob << dendl;
+       ob->exists = true;
+       if (writeback_handler.may_copy_on_write(ob->get_oid(), start, length, ob->get_snap())) {
+       ldout(cct, 10) << "bh_write_commit may copy on write, clearing complete on " << *ob << dendl;
+       ob->complete = false;
+       }
+     }
      // apply to bh's!
      for (map<loff_t, BufferHead*>::iterator p = ob->data.lower_bound(start);
           p != ob->data.end();