From 49d114f1fff90e5c0f206725a5eb82c0ba329376 Mon Sep 17 00:00:00 2001 From: Matt Richards Date: Thu, 8 Jan 2015 13:16:17 -0800 Subject: [PATCH] librados: Translate operation flags from C APIs The operation flags in the public C API are a distinct enum and need to be translated to Ceph OSD flags, like as happens in the C++ API. It seems like the C enum and the C++ enum consciously use the same values, so I reused the C++ translation function. Signed-off-by: Matthew Richards --- src/librados/librados.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 7f95d4f1a86f7..bf64f859a09c1 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -4344,7 +4344,7 @@ extern "C" int rados_write_op_operate(rados_write_op_t write_op, object_t obj(oid); ::ObjectOperation *oo = (::ObjectOperation *) write_op; librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; - int retval = ctx->operate(obj, oo, mtime, flags); + int retval = ctx->operate(obj, oo, mtime, translate_flags(flags)); tracepoint(librados, rados_write_op_operate_exit, retval); return retval; } @@ -4361,7 +4361,7 @@ extern "C" int rados_aio_write_op_operate(rados_write_op_t write_op, ::ObjectOperation *oo = (::ObjectOperation *) write_op; librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; librados::AioCompletionImpl *c = (librados::AioCompletionImpl*)completion; - int retval = ctx->aio_operate(obj, oo, c, ctx->snapc, flags); + int retval = ctx->aio_operate(obj, oo, c, ctx->snapc, translate_flags(flags)); tracepoint(librados, rados_aio_write_op_operate_exit, retval); return retval; } @@ -4673,7 +4673,8 @@ extern "C" int rados_read_op_operate(rados_read_op_t read_op, tracepoint(librados, rados_read_op_operate_enter, read_op, io, oid, flags); object_t obj(oid); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; - int retval = ctx->operate_read(obj, (::ObjectOperation *)read_op, NULL, flags); + int retval = ctx->operate_read(obj, (::ObjectOperation *)read_op, NULL, + translate_flags(flags)); tracepoint(librados, rados_read_op_operate_exit, retval); return retval; } @@ -4689,7 +4690,7 @@ extern "C" int rados_aio_read_op_operate(rados_read_op_t read_op, librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; librados::AioCompletionImpl *c = (librados::AioCompletionImpl*)completion; int retval = ctx->aio_operate_read(obj, (::ObjectOperation *)read_op, - c, flags, NULL); + c, translate_flags(flags), NULL); tracepoint(librados, rados_aio_read_op_operate_exit, retval); return retval; } -- 2.39.5