]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados/AioCompletionImpl.h: add missing Lock
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Tue, 14 May 2013 16:50:09 +0000 (18:50 +0200)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Tue, 14 May 2013 16:50:09 +0000 (18:50 +0200)
Add missing Lock around code changing AioCompletionImpl::rval/ack and safe
in C_AioCompleteAndSafe::finish().

CID 1019565 (#1 of 1): Data race condition (MISSING_LOCK)
  missing_lock: Accessing "this->c->rval" ("_ZN8librados17AioCompletionImplE.rval")
  requires the "Mutex._m" lock.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
src/librados/AioCompletionImpl.h

index b3e1e8a16e2c5f08814388e48fe2bd175abf4fc4..34462d22063fb9d6f816f2cf608ddb8c131d5f9d 100644 (file)
@@ -212,9 +212,11 @@ struct C_AioCompleteAndSafe : public Context {
   }
 
   void finish(int r) {
+    c->lock.Lock();
     c->rval = r;
     c->ack = true;
     c->safe = true;
+    c->lock.Unlock();
     rados_callback_t cb_complete = c->callback_complete;
     void *cb_arg = c->callback_arg;
     if (cb_complete)