From: Sage Weil Date: Thu, 25 Sep 2014 16:59:29 +0000 (-0700) Subject: osd/ReplicatedPG: fix objecter locking in start_flush X-Git-Tag: v0.80.6~2^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F2576%2Fhead;p=ceph.git osd/ReplicatedPG: fix objecter locking in start_flush Broken in backport fd96eb62ece27f5c660429584c2ff2e058bc6e94. Signed-off-by: Sage Weil --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index f7c97ad52335..5600466fa435 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -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);