From: Mykola Golub Date: Wed, 27 Jul 2016 10:42:19 +0000 (+0300) Subject: cls/journal: add async client_update_state method X-Git-Tag: v11.0.1~316^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=58b8c66d5bfa60e6dd3ad2ec79360c2eca165c58;p=ceph.git cls/journal: add async client_update_state method Signed-off-by: Mykola Golub --- diff --git a/src/cls/journal/cls_journal_client.cc b/src/cls/journal/cls_journal_client.cc index 100a98d7d841..4ecaa879ed0a 100644 --- a/src/cls/journal/cls_journal_client.cc +++ b/src/cls/journal/cls_journal_client.cc @@ -296,13 +296,18 @@ void client_update_data(librados::ObjectWriteOperation *op, int client_update_state(librados::IoCtx &ioctx, const std::string &oid, const std::string &id, cls::journal::ClientState state) { + librados::ObjectWriteOperation op; + client_update_state(&op, id, state); + return ioctx.operate(oid, &op); +} + +void client_update_state(librados::ObjectWriteOperation *op, + const std::string &id, + cls::journal::ClientState state) { bufferlist bl; ::encode(id, bl); ::encode(static_cast(state), bl); - - librados::ObjectWriteOperation op; - op.exec("journal", "client_update_state", bl); - return ioctx.operate(oid, &op); + op->exec("journal", "client_update_state", bl); } int client_unregister(librados::IoCtx &ioctx, const std::string &oid, diff --git a/src/cls/journal/cls_journal_client.h b/src/cls/journal/cls_journal_client.h index f4ff481a658b..9d41d405e7ab 100644 --- a/src/cls/journal/cls_journal_client.h +++ b/src/cls/journal/cls_journal_client.h @@ -53,6 +53,9 @@ void client_update_data(librados::ObjectWriteOperation *op, const std::string &id, const bufferlist &data); int client_update_state(librados::IoCtx &ioctx, const std::string &oid, const std::string &id, cls::journal::ClientState state); +void client_update_state(librados::ObjectWriteOperation *op, + const std::string &id, + cls::journal::ClientState state); int client_unregister(librados::IoCtx &ioctx, const std::string &oid, const std::string &id);