summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-05-14 18:50:09 +0200
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-05-14 18:50:09 +0200
commit088455f85e4a684d270b82c4b2b26edab3e1ad99 (patch)
treebe9f48541620f9db7d01c2357b5d48ecb7c8ee83
parent8a52350dd886353444fdcdcc79f28ff8f62a9aab (diff)
downloadceph-088455f85e4a684d270b82c4b2b26edab3e1ad99.tar.gz
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 <danny.al-gaaf@bisect.de>
-rw-r--r--src/librados/AioCompletionImpl.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/librados/AioCompletionImpl.h b/src/librados/AioCompletionImpl.h
index b3e1e8a16e2..34462d22063 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)