From 94fbcf3269650df0f21f27af17a17d6afe3c459b Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Tue, 23 May 2023 12:56:34 -0400 Subject: [PATCH] librados: rados_write_op_operate() uses ObjectOperationImpl for mtime Signed-off-by: Casey Bodley (cherry picked from commit b888821da72de1b02e06693b3e693aab7bc90ad7) --- src/librados/librados_c.cc | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/librados/librados_c.cc b/src/librados/librados_c.cc index 65dc4bc32ccc1..e88d067cae600 100644 --- a/src/librados/librados_c.cc +++ b/src/librados/librados_c.cc @@ -3997,18 +3997,15 @@ extern "C" int LIBRADOS_C_API_DEFAULT_F(rados_write_op_operate)( { tracepoint(librados, rados_write_op_operate_enter, write_op, io, oid, mtime, flags); object_t obj(oid); - ::ObjectOperation *oo = to_object_operation(write_op); + auto oimpl = static_cast(write_op); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; - ceph::real_time *prt = NULL; - ceph::real_time rt; - if (mtime) { - rt = ceph::real_clock::from_time_t(*mtime); - prt = &rt; + oimpl->rt = ceph::real_clock::from_time_t(*mtime); + oimpl->prt = &oimpl->rt; } - int retval = ctx->operate(obj, oo, prt, translate_flags(flags)); + int retval = ctx->operate(obj, &oimpl->o, oimpl->prt, translate_flags(flags)); tracepoint(librados, rados_write_op_operate_exit, retval); return retval; } @@ -4023,18 +4020,15 @@ extern "C" int LIBRADOS_C_API_DEFAULT_F(rados_write_op_operate2)( { tracepoint(librados, rados_write_op_operate2_enter, write_op, io, oid, ts, flags); object_t obj(oid); - ::ObjectOperation *oo = to_object_operation(write_op); + auto oimpl = static_cast(write_op); librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; - ceph::real_time *prt = NULL; - ceph::real_time rt; - if (ts) { - rt = ceph::real_clock::from_timespec(*ts); - prt = &rt; + oimpl->rt = ceph::real_clock::from_timespec(*ts); + oimpl->prt = &oimpl->rt; } - int retval = ctx->operate(obj, oo, prt, translate_flags(flags)); + int retval = ctx->operate(obj, &oimpl->o, oimpl->prt, translate_flags(flags)); tracepoint(librados, rados_write_op_operate_exit, retval); return retval; } -- 2.39.5