From: Ilya Dryomov Date: Tue, 21 Jan 2025 20:07:08 +0000 (+0100) Subject: cls/rbd: don't use read API for write-like methods X-Git-Tag: testing/wip-pdonnell-testing-20250130.221602-debug~8^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4612195b9c3b9a86142cb2a4b04366ac14840295;p=ceph-ci.git cls/rbd: don't use read API for write-like methods This is a follow-up for commit af176311c476 (objclass: change objclass exec read calls to write ones where needed) which missed mirror_uuid_set and raced with the addition of mirror_remote_namespace_set. Fixes: https://tracker.ceph.com/issues/65889 Signed-off-by: Ilya Dryomov --- diff --git a/src/cls/rbd/cls_rbd_client.cc b/src/cls/rbd/cls_rbd_client.cc index bc98e427cb0..54fad9b7d25 100644 --- a/src/cls/rbd/cls_rbd_client.cc +++ b/src/cls/rbd/cls_rbd_client.cc @@ -1819,9 +1819,9 @@ int mirror_uuid_set(librados::IoCtx *ioctx, const std::string &uuid) { bufferlist in_bl; encode(uuid, in_bl); - bufferlist out_bl; - int r = ioctx->exec(RBD_MIRRORING, "rbd", "mirror_uuid_set", in_bl, - out_bl); + librados::ObjectWriteOperation op; + op.exec("rbd", "mirror_uuid_set", in_bl); + int r = ioctx->operate(RBD_MIRRORING, &op); if (r < 0) { return r; } @@ -1907,9 +1907,9 @@ int mirror_remote_namespace_set(librados::IoCtx *ioctx, bufferlist in_bl; encode(mirror_namespace, in_bl); - bufferlist out_bl; - int r = ioctx->exec(RBD_MIRRORING, "rbd", "mirror_remote_namespace_set", - in_bl, out_bl); + librados::ObjectWriteOperation op; + op.exec("rbd", "mirror_remote_namespace_set", in_bl); + int r = ioctx->operate(RBD_MIRRORING, &op); if (r < 0) { return r; }