From e3af22a69313ecd69c9f0dd6b231ce1a24a6bbbd Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Tue, 18 Jun 2019 18:44:25 -0700 Subject: [PATCH] rgw: resurrect metadata mutate Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_metadata.cc | 23 +++++++++++++++++++++++ src/rgw/rgw_metadata.h | 6 ++++++ 2 files changed, 29 insertions(+) diff --git a/src/rgw/rgw_metadata.cc b/src/rgw/rgw_metadata.cc index f68be0ffc79..0b728de8aa1 100644 --- a/src/rgw/rgw_metadata.cc +++ b/src/rgw/rgw_metadata.cc @@ -332,6 +332,14 @@ public: return -ENOTSUP; } + int mutate(const string& entry, + const ceph::real_time& mtime, + RGWObjVersionTracker *objv_tracker, + RGWMDLogStatus op_type, + std::function f) { + return -ENOTSUP; + } + int list_keys_init(const string& marker, void **phandle) override { iter_data *data = new iter_data; list sections; @@ -523,6 +531,21 @@ int RGWMetadataHandler_GenericMetaBE::mutate(const string& entry, }); } +int RGWMetadataHandler_GenericMetaBE::mutate(const string& entry, + const ceph::real_time& mtime, + RGWObjVersionTracker *objv_tracker, + RGWMDLogStatus op_type, + std::function f) +{ + return be_handler->call([&](RGWSI_MetaBackend_Handler::Op *op) { + RGWSI_MetaBackend::MutateParams params(mtime, op_type); + return op->mutate(entry, + params, + objv_tracker, + f); + }); +} + int RGWMetadataHandler_GenericMetaBE::get_shard_id(const string& entry, int *shard_id) { return be_handler->call([&](RGWSI_MetaBackend_Handler::Op *op) { diff --git a/src/rgw/rgw_metadata.h b/src/rgw/rgw_metadata.h index ac69ed68c06..aca64f6afe2 100644 --- a/src/rgw/rgw_metadata.h +++ b/src/rgw/rgw_metadata.h @@ -230,6 +230,12 @@ public: obj_version *existing_version = NULL); int remove(string& metadata_key, optional_yield y); + int mutate(const string& metadata_key, + const ceph::real_time& mtime, + RGWObjVersionTracker *objv_tracker, + RGWMDLogStatus op_type, + std::function f); + int mutate(const string& metadata_key, const ceph::real_time& mtime, RGWObjVersionTracker *objv_tracker, -- 2.39.5