Merge pull request #4720 from athanatos/wip-clarify-DBObjectMap-sync

DBObjectMap::sync: add comment clarifying locking

Reviewed-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
Kefu Chai 2015-05-20 21:28:28 +08:00
commit 8c65e2af29

View File

@ -1043,6 +1043,13 @@ int DBObjectMap::sync(const ghobject_t *oid,
header->spos = *spos; header->spos = *spos;
set_map_header(hl, *oid, *header, t); set_map_header(hl, *oid, *header, t);
} }
/* It may appear that this and the identical portion of the else
* block can combined below, but in this block, the transaction
* must be submitted under *both* the MapHeaderLock and the full
* header_lock.
*
* See 2b63dd25fc1c73fa42e52e9ea4ab5a45dd9422a0 and bug 9891.
*/
Mutex::Locker l(header_lock); Mutex::Locker l(header_lock);
write_state(t); write_state(t);
return db->submit_transaction_sync(t); return db->submit_transaction_sync(t);