It sounds like we're kicking around two proposed changes: 1) A delete will never -ENOENT; a delete on a non-existent object is a success. This is important for cache tiering, and allowing us to skip checking the base tier for certain client requests. 2) Any write will implicitly create the object. If we want such a dependency (so we see ENOENT), the user can put an assert_exists in the op vector. I think what both of these amount to is that the writes have no read-side checks and will effectively never fail (except for true failure cases). If the user wants some sort of failure, it will be explicit in the form of another read check in the op vector. Sam, is this what you're thinking? It's a subtle but real change in the semantics of rados ops, but I think now would be the time to make it... sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html