From 91d326c16401c163c157fedd19933cc56a80dbe6 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Tue, 31 Mar 2020 09:23:22 -0400 Subject: [PATCH] rgw: RadosRemoveCR takes objv_tracker Signed-off-by: Casey Bodley --- src/rgw/rgw_cr_rados.cc | 9 +++++++-- src/rgw/rgw_cr_rados.h | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/rgw/rgw_cr_rados.cc b/src/rgw/rgw_cr_rados.cc index f0d46ba83a6..149ec341934 100644 --- a/src/rgw/rgw_cr_rados.cc +++ b/src/rgw/rgw_cr_rados.cc @@ -399,8 +399,10 @@ int RGWRadosRemoveOmapKeysCR::request_complete() return r; } -RGWRadosRemoveCR::RGWRadosRemoveCR(rgw::sal::RGWRadosStore *store, const rgw_raw_obj& obj) - : RGWSimpleCoroutine(store->ctx()), store(store), obj(obj) +RGWRadosRemoveCR::RGWRadosRemoveCR(rgw::sal::RGWRadosStore *store, const rgw_raw_obj& obj, + RGWObjVersionTracker* objv_tracker) + : RGWSimpleCoroutine(store->ctx()), + store(store), obj(obj), objv_tracker(objv_tracker) { set_description() << "remove dest=" << obj; } @@ -418,6 +420,9 @@ int RGWRadosRemoveCR::send_request() set_status() << "send request"; librados::ObjectWriteOperation op; + if (objv_tracker) { + objv_tracker->prepare_op_for_write(&op); + } op.remove(); cn = stack->create_completion_notifier(); diff --git a/src/rgw/rgw_cr_rados.h b/src/rgw/rgw_cr_rados.h index df31131e217..82bf8e5d13c 100644 --- a/src/rgw/rgw_cr_rados.h +++ b/src/rgw/rgw_cr_rados.h @@ -667,10 +667,12 @@ class RGWRadosRemoveCR : public RGWSimpleCoroutine { rgw::sal::RGWRadosStore *store; librados::IoCtx ioctx; const rgw_raw_obj obj; + RGWObjVersionTracker* objv_tracker; boost::intrusive_ptr cn; public: - RGWRadosRemoveCR(rgw::sal::RGWRadosStore *store, const rgw_raw_obj& obj); + RGWRadosRemoveCR(rgw::sal::RGWRadosStore *store, const rgw_raw_obj& obj, + RGWObjVersionTracker* objv_tracker = nullptr); int send_request() override; int request_complete() override; -- 2.39.5