#7317 ENOSPC and OSD epoch barrier handling


Related:
https://github.com/ceph/ceph-qa-suite/pull/225
https://github.com/ceph/ceph-client/pull/7
The general statement (from which we infer a lot) is: "If two threads each call one of these functions, each call shall either see all of the specified effects of the other call, or none of them."
http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09_07