]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
objecter: fix locking on is_latest_map checks
authorSage Weil <sage@newdream.net>
Mon, 3 Oct 2011 22:37:23 +0000 (15:37 -0700)
committerSage Weil <sage@newdream.net>
Tue, 4 Oct 2011 20:44:55 +0000 (13:44 -0700)
We need to take the lock protecting these structures in the completion
context.

Signed-off-by: Sage Weil <sage@newdream.net>
src/osdc/Objecter.cc

index fabd9f250fdfffdcfb2da9034cd3e59d7a5be4a9..6aa76046157f5818d2da7262c1bfc0d1de453a79 100644 (file)
@@ -354,6 +354,8 @@ void Objecter::C_Op_Map_Latest::finish(int r)
   if (r < 0)
     return;
 
+  Mutex::Locker l(objecter->client_lock);
+
   map<tid_t, Op*>::iterator iter =
     objecter->check_latest_map_ops.find(tid);
   if (iter == objecter->check_latest_map_ops.end()) {
@@ -381,6 +383,8 @@ void Objecter::C_Linger_Map_Latest::finish(int r)
   if (r < 0)
     return;
 
+  Mutex::Locker l(objecter->client_lock);
+
   map<uint64_t, LingerOp*>::iterator iter =
     objecter->check_latest_map_lingers.find(linger_id);
   if (iter == objecter->check_latest_map_lingers.end()) {