]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/ReplicatedPG: fix objecter locking in start_flush 2576/head
authorSage Weil <sage@redhat.com>
Thu, 25 Sep 2014 16:59:29 +0000 (09:59 -0700)
committerSage Weil <sage@redhat.com>
Thu, 25 Sep 2014 17:02:16 +0000 (10:02 -0700)
Broken in backport fd96eb62ece27f5c660429584c2ff2e058bc6e94.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/ReplicatedPG.cc

index f7c97ad5233567720dc9c95550f518a94ea8071b..5600466fa4355d0b33797d335b7ce6c2d97dd662 100644 (file)
@@ -6250,6 +6250,7 @@ int ReplicatedPG::start_flush(
   if (dsnapc2.seq > dsnapc.seq && dsnapc2.seq < snapc.seq) {
     ObjectOperation o;
     o.remove();
+    osd->objecter_lock.Lock();
     osd->objecter->mutate(
       soid.oid,
       base_oloc,
@@ -6261,6 +6262,7 @@ int ReplicatedPG::start_flush(
        CEPH_OSD_FLAG_ENFORCE_SNAPC),
       NULL,
       NULL /* no callback, we'll rely on the ordering w.r.t the next op */);
+    osd->objecter_lock.Unlock();
   }
 
   FlushOpRef fop(new FlushOp);