A lot of investigation has been done on the correctness of atomics already, including how they would work in the C11 memory model. It is clear that there are data races throughout the code in WiredTiger as a number of locations are written to with atomics and read without them.
The purpose of this review is to clearly establish what the correct way of using atomic arithmetic functions are in WiredTiger.