From: Danny Al-Gaaf Date: Tue, 14 May 2013 16:50:09 +0000 (+0200) Subject: librados/AioCompletionImpl.h: add missing Lock X-Git-Tag: v0.63~29^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=088455f85e4a684d270b82c4b2b26edab3e1ad99;p=ceph.git librados/AioCompletionImpl.h: add missing Lock 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 --- diff --git a/src/librados/AioCompletionImpl.h b/src/librados/AioCompletionImpl.h index b3e1e8a16e2c..34462d22063f 100644 --- a/src/librados/AioCompletionImpl.h +++ b/src/librados/AioCompletionImpl.h @@ -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)