From 71005c1bdf38212ea2fde12de08c45598c815d37 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 25 Sep 2014 09:59:29 -0700 Subject: [PATCH] osd/ReplicatedPG: fix objecter locking in start_flush Broken in backport fd96eb62ece27f5c660429584c2ff2e058bc6e94. Signed-off-by: Sage Weil --- src/osd/ReplicatedPG.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index f7c97ad5233..5600466fa43 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); -- 2.47.3