From d250906aee8bbc0cfc940a8fa163b05f48fcedd1 Mon Sep 17 00:00:00 2001 From: Ali Maredia Date: Fri, 30 Aug 2019 17:13:47 -0400 Subject: [PATCH] cls: CLS_CLIET_HIDE_IOCTX changes in cls headers Signed-off-by: Ali Maredia --- src/cls/log/cls_log_client.h | 2 ++ src/cls/otp/cls_otp_client.h | 10 +++++++--- src/cls/refcount/cls_refcount_client.h | 4 ++++ src/cls/timeindex/cls_timeindex_client.h | 2 ++ src/cls/version/cls_version_client.h | 4 ++++ 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/cls/log/cls_log_client.h b/src/cls/log/cls_log_client.h index 059e7750216..b994206bec6 100644 --- a/src/cls/log/cls_log_client.h +++ b/src/cls/log/cls_log_client.h @@ -24,6 +24,8 @@ void cls_log_list(librados::ObjectReadOperation& op, utime_t& from, utime_t& to, void cls_log_trim(librados::ObjectWriteOperation& op, const utime_t& from_time, const utime_t& to_time, const string& from_marker, const string& to_marker); +// these overloads which call io_ctx.operate() should not be called in the rgw. +// rgw_rados_operate() should be called after the overloads w/o calls to io_ctx.operate() #ifndef CLS_CLIENT_HIDE_IOCTX int cls_log_trim(librados::IoCtx& io_ctx, const string& oid, const utime_t& from_time, const utime_t& to_time, const string& from_marker, const string& to_marker); diff --git a/src/cls/otp/cls_otp_client.h b/src/cls/otp/cls_otp_client.h index f19c945911a..f1dec9f5681 100644 --- a/src/cls/otp/cls_otp_client.h +++ b/src/cls/otp/cls_otp_client.h @@ -16,19 +16,23 @@ namespace rados { static void create(librados::ObjectWriteOperation *op, const otp_info_t& config); static void set(librados::ObjectWriteOperation *op, const list& entries); static void remove(librados::ObjectWriteOperation *op, const string& id); - static int get(librados::ObjectReadOperation *op, - librados::IoCtx& ioctx, const string& oid, - const list *ids, bool get_all, list *result); static int get(librados::ObjectReadOperation *op, librados::IoCtx& ioctx, const string& oid, const string& id, otp_info_t *result); static int get_all(librados::ObjectReadOperation *op, librados::IoCtx& ioctx, const string& oid, list *result); +// these overloads which call io_ctx.operate() or io_ctx.exec() should not be called in the rgw. +// rgw_rados_operate() should be called after the overloads w/o calls to io_ctx.operate()/exec() +#ifndef CLS_CLIENT_HIDE_IOCTX + static int get(librados::ObjectReadOperation *op, + librados::IoCtx& ioctx, const string& oid, + const list *ids, bool get_all, list *result); static int check(CephContext *cct, librados::IoCtx& ioctx, const string& oid, const string& id, const string& val, otp_check_t *result); static int get_current_time(librados::IoCtx& ioctx, const string& oid, ceph::real_time *result); +#endif }; class TOTPConfig { diff --git a/src/cls/refcount/cls_refcount_client.h b/src/cls/refcount/cls_refcount_client.h index c41a4f6c03b..756a971a328 100644 --- a/src/cls/refcount/cls_refcount_client.h +++ b/src/cls/refcount/cls_refcount_client.h @@ -29,6 +29,10 @@ void cls_refcount_get(librados::ObjectWriteOperation& op, const string& tag, bool implicit_ref = false); void cls_refcount_put(librados::ObjectWriteOperation& op, const string& tag, bool implicit_ref = false); void cls_refcount_set(librados::ObjectWriteOperation& op, list& refs); +// these overloads which call io_ctx.operate() or io_ctx.exec() should not be called in the rgw. +// rgw_rados_operate() should be called after the overloads w/o calls to io_ctx.operate()/exec() +#ifndef CLS_CLIENT_HIDE_IOCTX int cls_refcount_read(librados::IoCtx& io_ctx, string& oid, list *refs, bool implicit_ref = false); +#endif #endif diff --git a/src/cls/timeindex/cls_timeindex_client.h b/src/cls/timeindex/cls_timeindex_client.h index 49fa5ce4afc..ce6392f6d13 100644 --- a/src/cls/timeindex/cls_timeindex_client.h +++ b/src/cls/timeindex/cls_timeindex_client.h @@ -83,6 +83,8 @@ void cls_timeindex_trim( const std::string& from_marker = std::string(), const std::string& to_marker = std::string()); +// these overloads which call io_ctx.operate() should not be called in the rgw. +// rgw_rados_operate() should be called after the overloads w/o calls to io_ctx.operate() #ifndef CLS_CLIENT_HIDE_IOCTX int cls_timeindex_trim( librados::IoCtx& io_ctx, diff --git a/src/cls/version/cls_version_client.h b/src/cls/version/cls_version_client.h index 01e7d52cfcb..5dc039bcbe1 100644 --- a/src/cls/version/cls_version_client.h +++ b/src/cls/version/cls_version_client.h @@ -18,7 +18,11 @@ void cls_version_inc(librados::ObjectWriteOperation& op, obj_version& ver, Versi void cls_version_read(librados::ObjectReadOperation& op, obj_version *objv); +// these overloads which call io_ctx.operate() or io_ctx.exec() should not be called in the rgw. +// rgw_rados_operate() should be called after the overloads w/o calls to io_ctx.operate()/exec() +#ifndef CLS_CLIENT_HIDE_IOCTX int cls_version_read(librados::IoCtx& io_ctx, string& oid, obj_version *ver); +#endif void cls_version_check(librados::ObjectOperation& op, obj_version& ver, VersionCond cond);