From 1bc7b114ea54cadb7a07c5888f1128236d031602 Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Tue, 7 May 2019 06:40:28 +0100 Subject: [PATCH] cls/rbd: provide async version of copyup method Signed-off-by: Mykola Golub --- src/cls/rbd/cls_rbd_client.cc | 10 ++++++++-- src/cls/rbd/cls_rbd_client.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/cls/rbd/cls_rbd_client.cc b/src/cls/rbd/cls_rbd_client.cc index 1e03fbce01b..4f2b3f510aa 100644 --- a/src/cls/rbd/cls_rbd_client.cc +++ b/src/cls/rbd/cls_rbd_client.cc @@ -833,10 +833,16 @@ int get_all_features(librados::IoCtx *ioctx, const std::string &oid, return get_all_features_finish(&it, all_features); } +void copyup(librados::ObjectWriteOperation *op, bufferlist data) { + op->exec("rbd", "copyup", data); +} + int copyup(librados::IoCtx *ioctx, const std::string &oid, bufferlist data) { - bufferlist out; - return ioctx->exec(oid, "rbd", "copyup", data, out); + librados::ObjectWriteOperation op; + copyup(&op, data); + + return ioctx->operate(oid, &op); } void sparse_copyup(librados::ObjectWriteOperation *op, diff --git a/src/cls/rbd/cls_rbd_client.h b/src/cls/rbd/cls_rbd_client.h index d9a01acd110..3ff6f32caa3 100644 --- a/src/cls/rbd/cls_rbd_client.h +++ b/src/cls/rbd/cls_rbd_client.h @@ -597,6 +597,7 @@ void assert_snapc_seq(librados::ObjectWriteOperation *op, uint64_t snapc_seq, cls::rbd::AssertSnapcSeqState state); +void copyup(librados::ObjectWriteOperation *op, bufferlist data); int copyup(librados::IoCtx *ioctx, const std::string &oid, bufferlist data); -- 2.39.5