diff options
author | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-05-14 18:50:09 +0200 |
---|---|---|
committer | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-05-14 18:50:09 +0200 |
commit | 088455f85e4a684d270b82c4b2b26edab3e1ad99 (patch) | |
tree | be9f48541620f9db7d01c2357b5d48ecb7c8ee83 | |
parent | 8a52350dd886353444fdcdcc79f28ff8f62a9aab (diff) | |
download | ceph-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.h | 2 |
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) |