On Thu, Jul 6, 2017 at 10:22 AM, Piotr Dałek <piotr.dalek@xxxxxxxxxxxx> wrote: > So I really see two problems here: lack of API docs and > backwards-incompatible change in API behavior. Docs are always in need of update, so any pull requests would be greatly appreciated. However, I disagree that the behavior has substantively changed -- it was always possible for pre-Luminous to (sometimes) copy the buffer before the "rbd_aio_write" method completed. With Luminous, this behavior is more consistent -- but in a future release memory may be zero-copied. If your application can properly conform to the (unwritten) contract that the buffers should remain unchanged, there would be no need for the application to pre-copy the buffers. If the libfuse implementation requires that the memory is not-in-use by the time you return control to it (i.e. it's a synchronous API and you are using async methods), you will always need to copy it. The C++ API allows you to control the copying since you need to pass "bufferlist"s to the API methods and since they utilize a reference counter, there is no internal copying within librbd / librados. -- Jason _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com