]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/lc: use flag and named constants instead of booleans as argument in interface 55289/head
authorJane Zhu <jzhu116@bloomberg.net>
Tue, 12 Dec 2023 18:57:00 +0000 (13:57 -0500)
committerJuan Zhu <jzhu4@dev-10-34-20-139.pw1.bcc.bloomberg.com>
Wed, 24 Jan 2024 05:03:32 +0000 (00:03 -0500)
Signed-off-by: Juan Zhu <jzhu4@dev-10-34-20-139.pw1.bcc.bloomberg.com>
(cherry picked from commit 17ca50e70421cfe263784e8d65008145221e41c3)

Conflicts:
src/rgw/driver/d4n/rgw_sal_d4n.cc
src/rgw/driver/d4n/rgw_sal_d4n.h
src/rgw/driver/posix/rgw_sal_posix.cc
src/rgw/driver/posix/rgw_sal_posix.h
src/rgw/driver/rados/rgw_bucket.cc
src/rgw/driver/rados/rgw_putobj_processor.cc
src/rgw/driver/rados/rgw_putobj_processor.h
src/rgw/driver/rados/rgw_rados.cc
src/rgw/driver/rados/rgw_sal_rados.cc
src/rgw/driver/rados/rgw_sal_rados.h
src/rgw/rgw_data_access.cc
src/rgw/rgw_lc.cc
src/rgw/rgw_op.cc
src/rgw/rgw_sal.h
src/rgw/rgw_sal_daos.cc
src/rgw/rgw_sal_daos.h
src/rgw/rgw_sal_dbstore.cc
src/rgw/rgw_sal_dbstore.h
src/rgw/rgw_sal_filter.cc
src/rgw/rgw_sal_filter.h
src/rgw/rgw_sal_motr.cc
src/rgw/rgw_sal_motr.h

20 files changed:
src/rgw/driver/rados/rgw_bucket.cc
src/rgw/driver/rados/rgw_object_expirer_core.cc
src/rgw/driver/rados/rgw_putobj_processor.cc
src/rgw/driver/rados/rgw_putobj_processor.h
src/rgw/driver/rados/rgw_rados.cc
src/rgw/driver/rados/rgw_sal_rados.cc
src/rgw/driver/rados/rgw_sal_rados.h
src/rgw/driver/rados/rgw_tools.cc
src/rgw/rgw_file.cc
src/rgw/rgw_lc.cc
src/rgw/rgw_op.cc
src/rgw/rgw_sal.h
src/rgw/rgw_sal_daos.cc
src/rgw/rgw_sal_daos.h
src/rgw/rgw_sal_dbstore.cc
src/rgw/rgw_sal_dbstore.h
src/rgw/rgw_sal_filter.cc
src/rgw/rgw_sal_filter.h
src/rgw/rgw_sal_motr.cc
src/rgw/rgw_sal_motr.h

index 32cd1ccf95166c63dd45bd376a74d30bb9672aff..d2b4a6b34b2dc1ab5f52f3288795e890ba4a3972 100644 (file)
@@ -158,7 +158,7 @@ int rgw_remove_object(const DoutPrefixProvider *dpp, rgw::sal::Driver* driver, r
 
   std::unique_ptr<rgw::sal::Object> object = bucket->get_object(key);
 
-  return object->delete_object(dpp, null_yield);
+  return object->delete_object(dpp, null_yield, rgw::sal::FLAG_LOG_OP);
 }
 
 static void set_err_msg(std::string *sink, std::string msg)
index ec1bf3fb6dc9974b8dff1e65fc4facd96e010c2e..d6beeeb06610b0edefc906aaffd7dd897b9798e1 100644 (file)
@@ -219,7 +219,7 @@ int RGWObjectExpirer::garbage_single_object(const DoutPrefixProvider *dpp, objex
 
   std::unique_ptr<rgw::sal::Object> obj = bucket->get_object(key);
   obj->set_atomic();
-  ret = obj->delete_object(dpp, null_yield);
+  ret = obj->delete_object(dpp, null_yield, rgw::sal::FLAG_LOG_OP);
 
   return ret;
 }
index 7fe8917e6e705a6bb5dcf8936ccfca87e3a6327a..1721d9bf4bdea86536476ea0137c5d09adf7a4c3 100644 (file)
@@ -340,7 +340,7 @@ int AtomicObjectProcessor::complete(size_t accounted_size,
                                     const std::string *user_data,
                                     rgw_zone_set *zones_trace,
                                     bool *pcanceled, optional_yield y,
-                                    bool log_op)
+                                    uint32_t flags)
 {
   int r = writer.drain();
   if (r < 0) {
@@ -377,7 +377,8 @@ int AtomicObjectProcessor::complete(size_t accounted_size,
 
   read_cloudtier_info_from_attrs(attrs, obj_op.meta.category, manifest);
 
-  r = obj_op.write_meta(dpp, actual_size, accounted_size, attrs, y, log_op);
+  r = obj_op.write_meta(dpp, actual_size, accounted_size, attrs, y,
+                        flags & rgw::sal::FLAG_LOG_OP);
   if (r < 0) {
     if (r == -ETIMEDOUT) {
       // The head object write may eventually succeed, clear the set of objects for deletion. if it
@@ -482,7 +483,7 @@ int MultipartObjectProcessor::complete(size_t accounted_size,
                                        const std::string *user_data,
                                        rgw_zone_set *zones_trace,
                                        bool *pcanceled, optional_yield y,
-                                       bool log_op)
+                                       uint32_t flags)
 {
   int r = writer.drain();
   if (r < 0) {
@@ -506,7 +507,8 @@ int MultipartObjectProcessor::complete(size_t accounted_size,
   obj_op.meta.zones_trace = zones_trace;
   obj_op.meta.modify_tail = true;
 
-  r = obj_op.write_meta(dpp, actual_size, accounted_size, attrs, y, log_op);
+  r = obj_op.write_meta(dpp, actual_size, accounted_size, attrs, y,
+                        flags & rgw::sal::FLAG_LOG_OP);
   if (r < 0)
     return r;
 
@@ -686,7 +688,7 @@ int AppendObjectProcessor::complete(size_t accounted_size, const string &etag, c
                                     ceph::real_time set_mtime, rgw::sal::Attrs& attrs,
                                     ceph::real_time delete_at, const char *if_match, const char *if_nomatch,
                                     const string *user_data, rgw_zone_set *zones_trace, bool *pcanceled,
-                                    optional_yield y, bool log_op)
+                                    optional_yield y, uint32_t flags)
 {
   int r = writer.drain();
   if (r < 0)
@@ -744,7 +746,7 @@ int AppendObjectProcessor::complete(size_t accounted_size, const string &etag, c
   }
   r = obj_op.write_meta(dpp, actual_size + cur_size,
                        accounted_size + *cur_accounted_size,
-                       attrs, y, log_op);
+                       attrs, y, flags & rgw::sal::FLAG_LOG_OP);
   if (r < 0) {
     return r;
   }
index b3defa85e055a2236813b03112c51ce7b74bdb1d..d52bcc5431b86823ff747937a24cb2053e338c5b 100644 (file)
@@ -192,7 +192,7 @@ class AtomicObjectProcessor : public ManifestObjectProcessor {
                const std::string *user_data,
                rgw_zone_set *zones_trace, bool *canceled,
                optional_yield y,
-               bool log_op = true) override;
+               uint32_t flags) override;
 
 };
 
@@ -240,7 +240,7 @@ class MultipartObjectProcessor : public ManifestObjectProcessor {
                const std::string *user_data,
                rgw_zone_set *zones_trace, bool *canceled,
                optional_yield y,
-               bool log_op = true) override;
+               uint32_t flags) override;
 
 };
 
@@ -277,7 +277,7 @@ class MultipartObjectProcessor : public ManifestObjectProcessor {
                  const char *if_match, const char *if_nomatch, const std::string *user_data,
                  rgw_zone_set *zones_trace, bool *canceled,
                  optional_yield y,
-                 bool log_op = true) override;
+                 uint32_t flags) override;
   };
 
 } // namespace putobj
index a8543cb5d2d7508866295d56416de0cd3bec38b4..3f09cbc871a21292705763f31f6b9d1279d97ddd 100644 (file)
@@ -4201,7 +4201,7 @@ int RGWRados::fetch_remote_obj(RGWObjectCtx& obj_ctx,
     bool canceled = false;
     ret = processor.complete(accounted_size, etag, mtime, set_mtime,
                              attrs, delete_at, nullptr, nullptr, nullptr,
-                             zones_trace, &canceled, null_yield);
+                             zones_trace, &canceled, null_yield, rgw::sal::FLAG_LOG_OP);
     if (ret < 0) {
       goto set_err_state;
     }
@@ -4722,7 +4722,8 @@ int RGWRados::copy_obj_data(RGWObjectCtx& obj_ctx,
   }
 
   return processor.complete(accounted_size, etag, mtime, set_mtime, attrs, delete_at,
-                            nullptr, nullptr, nullptr, nullptr, nullptr, y, log_op);
+                            nullptr, nullptr, nullptr, nullptr, nullptr, y,
+                            log_op ? rgw::sal::FLAG_LOG_OP : 0);
 }
 
 int RGWRados::transition_obj(RGWObjectCtx& obj_ctx,
@@ -5566,7 +5567,7 @@ int RGWRados::delete_obj(const DoutPrefixProvider *dpp,
   del_op.params.expiration_time = expiration_time;
   del_op.params.zones_trace = zones_trace;
 
-  return del_op.delete_obj(null_yield, dpp, log_op);
+  return del_op.delete_obj(null_yield, dpp, log_op ? rgw::sal::FLAG_LOG_OP : 0);
 }
 
 int RGWRados::delete_raw_obj(const DoutPrefixProvider *dpp, const rgw_raw_obj& obj)
@@ -7335,7 +7336,6 @@ int RGWRados::bucket_index_link_olh(const DoutPrefixProvider *dpp, RGWBucketInfo
                      cls_rgw_bucket_link_olh(op, key, olh_state.olh_tag,
                                               delete_marker, op_tag, meta, olh_epoch,
                                              unmod_since, high_precision_time,
-                                             svc.zone->need_to_log_data(), zones_trace);
                                              log_data_change, zones_trace);
                       return rgw_rados_operate(dpp, ref.pool.ioctx(), ref.obj.oid, &op, null_yield);
                     });
index 2c369604a6a31dc2a4e30eb21e0d617082e93aa8..723d1ee96177cc61f016bf5f7862ad6c78204549 100644 (file)
@@ -1002,7 +1002,7 @@ int RadosBucket::abort_multiparts(const DoutPrefixProvider* dpp,
 
     if (!uploads.empty()) {
       for (const auto& upload : uploads) {
-       ret = upload->abort(dpp, cct, true);
+       ret = upload->abort(dpp, cct);
         if (ret < 0) {
          // we're doing a best-effort; if something cannot be found,
          // log it and keep moving forward
@@ -1973,9 +1973,10 @@ int RadosObject::transition(Bucket* bucket,
                            uint64_t olh_epoch,
                            const DoutPrefixProvider* dpp,
                            optional_yield y,
-                            bool log_op)
+                            uint32_t flags)
 {
-  return store->getRados()->transition_obj(*rados_ctx, bucket->get_info(), get_obj(), placement_rule, mtime, olh_epoch, dpp, y, log_op);
+  return store->getRados()->transition_obj(*rados_ctx, bucket->get_info(), get_obj(), placement_rule,
+                                           mtime, olh_epoch, dpp, y, flags & FLAG_LOG_OP);
 }
 
 int RadosObject::transition_to_cloud(Bucket* bucket,
@@ -2254,7 +2255,7 @@ RadosObject::RadosDeleteOp::RadosDeleteOp(RadosObject *_source) :
        parent_op(&op_target)
 { }
 
-int RadosObject::RadosDeleteOp::delete_obj(const DoutPrefixProvider* dpp, optional_yield y, bool log_op)
+int RadosObject::RadosDeleteOp::delete_obj(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags)
 {
   parent_op.params.bucket_owner = params.bucket_owner.get_id();
   parent_op.params.versioning_status = params.versioning_status;
@@ -2271,7 +2272,7 @@ int RadosObject::RadosDeleteOp::delete_obj(const DoutPrefixProvider* dpp, option
   parent_op.params.abortmp = params.abortmp;
   parent_op.params.parts_accounted_size = params.parts_accounted_size;
 
-  int ret = parent_op.delete_obj(y, dpp, log_op);
+  int ret = parent_op.delete_obj(y, dpp, flags & FLAG_LOG_OP);
   if (ret < 0)
     return ret;
 
@@ -2283,15 +2284,16 @@ int RadosObject::RadosDeleteOp::delete_obj(const DoutPrefixProvider* dpp, option
 
 int RadosObject::delete_object(const DoutPrefixProvider* dpp,
                               optional_yield y,
-                              bool prevent_versioning)
+                              uint32_t flags)
 {
   RGWRados::Object del_target(store->getRados(), bucket->get_info(), *rados_ctx, get_obj());
   RGWRados::Object::Delete del_op(&del_target);
 
   del_op.params.bucket_owner = bucket->get_info().owner;
-  del_op.params.versioning_status = prevent_versioning ? 0 : bucket->get_info().versioning_status();
+  del_op.params.versioning_status = (flags & FLAG_PREVENT_VERSIONING)
+                                    ? 0 : bucket->get_info().versioning_status();
 
-  return del_op.delete_obj(y, dpp);
+  return del_op.delete_obj(y, dpp, flags & FLAG_LOG_OP);
 }
 
 int RadosObject::delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate,
@@ -2432,7 +2434,7 @@ int RadosMultipartUpload::cleanup_part_history(const DoutPrefixProvider* dpp,
 }
 
 
-int RadosMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct, bool log_op)
+int RadosMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct)
 {
   std::unique_ptr<rgw::sal::Object> meta_obj = get_meta_obj();
   meta_obj->set_in_extra_data(true);
@@ -2460,7 +2462,7 @@ int RadosMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct,
        std::unique_ptr<rgw::sal::Object> obj = bucket->get_object(
                                    rgw_obj_key(obj_part->oid, std::string(), RGW_OBJ_NS_MULTIPART));
        obj->set_hash_source(mp_obj.get_key());
-       ret = obj->delete_object(dpp, null_yield, log_op);
+       ret = obj->delete_object(dpp, null_yield, 0);
         if (ret < 0 && ret != -ENOENT)
           return ret;
       } else {
@@ -2510,7 +2512,7 @@ int RadosMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct,
   del_op->params.parts_accounted_size = parts_accounted_size;
 
   // and also remove the metadata obj
-  ret = del_op->delete_obj(dpp, null_yield, log_op);
+  ret = del_op->delete_obj(dpp, null_yield, 0);
   if (ret < 0) {
     ldpp_dout(dpp, 20) << __func__ << ": del_op.delete_obj returned " <<
       ret << dendl;
@@ -3122,10 +3124,10 @@ int RadosAtomicWriter::complete(size_t accounted_size, const std::string& etag,
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op)
+                       uint32_t flags)
 {
   return processor.complete(accounted_size, etag, mtime, set_mtime, attrs, delete_at,
-                           if_match, if_nomatch, user_data, zones_trace, canceled, y, log_op);
+                           if_match, if_nomatch, user_data, zones_trace, canceled, y, flags);
 }
 
 int RadosAppendWriter::prepare(optional_yield y)
@@ -3146,10 +3148,10 @@ int RadosAppendWriter::complete(size_t accounted_size, const std::string& etag,
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op)
+                       uint32_t flags)
 {
   return processor.complete(accounted_size, etag, mtime, set_mtime, attrs, delete_at,
-                           if_match, if_nomatch, user_data, zones_trace, canceled, y, log_op);
+                           if_match, if_nomatch, user_data, zones_trace, canceled, y, flags);
 }
 
 int RadosMultipartWriter::prepare(optional_yield y)
@@ -3170,10 +3172,10 @@ int RadosMultipartWriter::complete(size_t accounted_size, const std::string& eta
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op)
+                       uint32_t flags)
 {
   return processor.complete(accounted_size, etag, mtime, set_mtime, attrs, delete_at,
-                           if_match, if_nomatch, user_data, zones_trace, canceled, y, log_op);
+                           if_match, if_nomatch, user_data, zones_trace, canceled, y, flags);
 }
 
 const std::string& RadosZoneGroup::get_endpoint() const
index 5d83bb0432b229ef7d7b01366ae15d354a7338b6..299be16e649962de1abe8a1996582417ddc23be8 100644 (file)
@@ -370,7 +370,7 @@ class RadosObject : public StoreObject {
     public:
       RadosDeleteOp(RadosObject* _source);
 
-      virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, bool log_op) override;
+      virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags) override;
     };
 
     RadosObject(RadosStore *_st, const rgw_obj_key& _k)
@@ -402,7 +402,7 @@ class RadosObject : public StoreObject {
       rados_ctx->invalidate(get_obj());
     }
     virtual int delete_object(const DoutPrefixProvider* dpp,
-                             optional_yield y, bool prevent_versioning) override;
+                             optional_yield y, uint32_t flags) override;
     virtual int delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate, Completions* aio,
                               bool keep_index_consistent, optional_yield y) override;
     virtual int copy_object(User* user,
@@ -454,7 +454,7 @@ class RadosObject : public StoreObject {
                           uint64_t olh_epoch,
                           const DoutPrefixProvider* dpp,
                           optional_yield y,
-                           bool log_op) override;
+                           uint32_t flags) override;
     virtual int transition_to_cloud(Bucket* bucket,
                           rgw::sal::PlacementTier* tier,
                           rgw_bucket_dir_entry& o,
@@ -680,7 +680,7 @@ public:
                         int num_parts, int marker,
                         int* next_marker, bool* truncated,
                         bool assume_unsorted = false) override;
-  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct, bool log_op) override;
+  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct) override;
   virtual int complete(const DoutPrefixProvider* dpp,
                       optional_yield y, CephContext* cct,
                       std::map<int, std::string>& part_etags,
@@ -824,7 +824,7 @@ public:
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
 };
 
 class RadosAppendWriter : public StoreWriter {
@@ -872,7 +872,7 @@ public:
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
 };
 
 class RadosMultipartWriter : public StoreWriter {
@@ -918,7 +918,7 @@ public:
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
 };
 
 class RadosLuaManager : public StoreLuaManager {
index 66651da5cc8ca7003ef6ba0957db7934c7047837..bc58c71ea56efe34fce2ff0c3c6dab15291af1a1 100644 (file)
@@ -422,7 +422,8 @@ int RGWDataAccess::Object::put(bufferlist& data,
                            attrs, delete_at,
                             nullptr, nullptr,
                             puser_data,
-                            nullptr, nullptr, y);
+                            nullptr, nullptr, y,
+                            rgw::sal::FLAG_LOG_OP);
 }
 
 void RGWDataAccess::Object::set_policy(const RGWAccessControlPolicy& policy)
index 1eff7a7d44722967ab1a0b4d2ff48fb5be5dd390..4d2df63c662075fe85f3a4182c3ea658fe180bf8 100644 (file)
@@ -2012,7 +2012,7 @@ namespace rgw {
     op_ret = processor->complete(state->obj_size, etag, &mtime, real_time(), attrs,
                                  (delete_at ? *delete_at : real_time()),
                                 if_match, if_nomatch, nullptr, nullptr, nullptr,
-                                state->yield, true);
+                                state->yield, rgw::sal::FLAG_LOG_OP);
     if (op_ret != 0) {
       /* revert attr updates */
       rgw_fh->set_mtime(omtime);
index 8350debd851d93d882565faed5a863171e4b15ac..a1b0ca7b3b64461fe63022ccae5494a55ba6b35c 100644 (file)
@@ -602,8 +602,9 @@ static int remove_expired_obj(
     return ret;
   }
 
-  bool log_op = !remove_indeed || !zonegroup_lc_check(dpp, oc.driver->get_zone());
-  ret =  del_op->delete_obj(dpp, null_yield, log_op);
+  uint32_t flags = (!remove_indeed || !zonegroup_lc_check(dpp, oc.driver->get_zone()))
+                   ? rgw::sal::FLAG_LOG_OP : 0;
+  ret =  del_op->delete_obj(dpp, null_yield, flags);
   if (ret < 0) {
     ldpp_dout(dpp, 1) <<
       "ERROR: publishing notification failed, with error: " << ret << dendl;
@@ -868,8 +869,7 @@ int RGWLC::handle_multipart_expiration(rgw::sal::Bucket* target,
       rgw_obj_key key(obj.key);
       std::unique_ptr<rgw::sal::MultipartUpload> mpu = target->get_multipart_upload(key.name);
 
-      bool log_op = !zonegroup_lc_check(wk->get_lc(), driver->get_zone());
-      int ret = mpu->abort(this, cct, log_op);
+      int ret = mpu->abort(this, cct);
       if (ret == 0) {
         if (perfcounter) {
           perfcounter->inc(l_rgw_lc_abort_mpu, 1);
@@ -1379,9 +1379,10 @@ public:
         return -EINVAL;
       }
 
-      bool log_op = !zonegroup_lc_check(oc.dpp, oc.driver->get_zone());
+      uint32_t flags = !zonegroup_lc_check(oc.dpp, oc.driver->get_zone())
+                       ? rgw::sal::FLAG_LOG_OP : 0;
       int r = oc.obj->transition(oc.bucket, target_placement, o.meta.mtime,
-                                 o.versioned_epoch, oc.dpp, null_yield, log_op);
+                                 o.versioned_epoch, oc.dpp, null_yield, flags);
       if (r < 0) {
         ldpp_dout(oc.dpp, 0) << "ERROR: failed to transition obj " 
                             << oc.bucket << ":" << o.key 
index ecfa18e10c7b8f7ca1b6ab61bd4939b212af9665..4d38f32e611b84b8100227df7e371be6e2cd8a14 100644 (file)
@@ -4361,7 +4361,7 @@ void RGWPutObj::execute(optional_yield y)
   op_ret = processor->complete(s->obj_size, etag, &mtime, real_time(), attrs,
                                (delete_at ? *delete_at : real_time()), if_match, if_nomatch,
                                (user_data.empty() ? nullptr : &user_data), nullptr, nullptr,
-                               s->yield, true);
+                               s->yield, rgw::sal::FLAG_LOG_OP);
   tracepoint(rgw_op, processor_complete_exit, s->req_id.c_str());
 
   /* produce torrent */
@@ -4639,7 +4639,7 @@ void RGWPostObj::execute(optional_yield y)
     op_ret = processor->complete(s->obj_size, etag, nullptr, real_time(), attrs,
                                 (delete_at ? *delete_at : real_time()),
                                 nullptr, nullptr, nullptr, nullptr, nullptr,
-                                s->yield, true);
+                                s->yield, rgw::sal::FLAG_LOG_OP);
     if (op_ret < 0) {
       return;
     }
@@ -5202,7 +5202,7 @@ void RGWDeleteObj::execute(optional_yield y)
       del_op->params.olh_epoch = epoch;
       del_op->params.marker_version_id = version_id;
 
-      op_ret = del_op->delete_obj(this, y, true);
+      op_ret = del_op->delete_obj(this, y, rgw::sal::FLAG_LOG_OP);
       if (op_ret >= 0) {
        delete_marker = del_op->result.delete_marker;
        version_id = del_op->result.version_id;
@@ -6572,7 +6572,7 @@ void RGWCompleteMultipart::execute(optional_yield y)
 
   // remove the upload meta object ; the meta object is not versioned
   // when the bucket is, as that would add an unneeded delete marker
-  int r = meta_obj->delete_object(this, y, true /* prevent versioning */);
+  int r = meta_obj->delete_object(this, y, rgw::sal::FLAG_PREVENT_VERSIONING | rgw::sal::FLAG_LOG_OP);
   if (r >= 0)  {
     /* serializer's exclusive lock is released */
     serializer->clear_locked();
@@ -6733,7 +6733,7 @@ void RGWAbortMultipart::execute(optional_yield y)
   }
   multipart_trace = tracing::rgw::tracer.add_span(name(), trace_ctx);
 
-  op_ret = upload->abort(this, s->cct, true);
+  op_ret = upload->abort(this, s->cct);
 }
 
 int RGWListMultipart::verify_permission(optional_yield y)
@@ -7099,7 +7099,7 @@ void RGWDeleteMultiObj::handle_individual_object(const rgw_obj_key& o, optional_
   del_op->params.bucket_owner = s->bucket_owner;
   del_op->params.marker_version_id = version_id;
 
-  op_ret = del_op->delete_obj(this, y, true);
+  op_ret = del_op->delete_obj(this, y, rgw::sal::FLAG_LOG_OP);
   if (op_ret == -ENOENT) {
     op_ret = 0;
   }
@@ -7275,7 +7275,7 @@ bool RGWBulkDelete::Deleter::delete_single(const acct_path_t& path, optional_yie
     del_op->params.obj_owner = bowner;
     del_op->params.bucket_owner = bucket_owner;
 
-    ret = del_op->delete_obj(dpp, y, true);
+    ret = del_op->delete_obj(dpp, y, rgw::sal::FLAG_LOG_OP);
     if (ret < 0) {
       goto delop_fail;
     }
@@ -7765,7 +7765,7 @@ int RGWBulkUploadOp::handle_file(const std::string_view path,
   op_ret = processor->complete(size, etag, nullptr, ceph::real_time(),
                               attrs, ceph::real_time() /* delete_at */,
                               nullptr, nullptr, nullptr, nullptr, nullptr,
-                              s->yield, true);
+                              s->yield, rgw::sal::FLAG_LOG_OP);
   if (op_ret < 0) {
     ldpp_dout(this, 20) << "processor::complete returned op_ret=" << op_ret << dendl;
   }
index fba422e618f795e4387b0234fb6e4e0ac447d1a5..50fe30c6bd81509da0830e578d101a70708c1645 100644 (file)
@@ -210,6 +210,9 @@ enum AttrsMod {
   ATTRSMOD_MERGE   = 2
 };
 
+static constexpr uint32_t FLAG_LOG_OP = 0x0001;
+static constexpr uint32_t FLAG_PREVENT_VERSIONING = 0x0002;
+
 // a simple streaming data processing abstraction
 /**
  * @brief A simple streaming data processing abstraction
@@ -244,7 +247,7 @@ class ObjectProcessor : public DataProcessor {
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) = 0;
+                       uint32_t flags) = 0;
 };
 
 /** Base class for AIO completions */
@@ -948,7 +951,7 @@ class Object {
       virtual ~DeleteOp() = default;
 
       /** Delete the object */
-      virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, bool log_op) = 0;
+      virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags) = 0;
     };
 
     Object() {}
@@ -957,7 +960,7 @@ class Object {
     /** Shortcut synchronous delete call for common deletes */
     virtual int delete_object(const DoutPrefixProvider* dpp,
                              optional_yield y,
-                             bool prevent_versioning = false) = 0;
+                             uint32_t flags) = 0;
     /** Asynchronous delete call */
     virtual int delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate, Completions* aio,
                               bool keep_index_consistent, optional_yield y) = 0;
@@ -1027,7 +1030,7 @@ class Object {
                           uint64_t olh_epoch,
                           const DoutPrefixProvider* dpp,
                           optional_yield y,
-                           bool log_op) = 0;
+                           uint32_t flags) = 0;
     /** Move an object to the cloud */
     virtual int transition_to_cloud(Bucket* bucket,
                           rgw::sal::PlacementTier* tier,
@@ -1209,7 +1212,7 @@ public:
                         int* next_marker, bool* truncated,
                         bool assume_unsorted = false) = 0;
   /** Abort this upload */
-  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct, bool log_op) = 0;
+  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct) = 0;
   /** Complete this upload, making it available as a normal object */
   virtual int complete(const DoutPrefixProvider* dpp,
                       optional_yield y, CephContext* cct,
@@ -1439,7 +1442,7 @@ public:
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) = 0;
+                       uint32_t flags) = 0;
 };
 
 
index bdd1638080c12f5782797b58e8cadb12fae1b33b..2647e18823a13088d1b6a3cfdba6ca4156f0866b 100644 (file)
@@ -1053,7 +1053,7 @@ int DaosObject::transition(Bucket* bucket,
                            const rgw_placement_rule& placement_rule,
                            const real_time& mtime, uint64_t olh_epoch,
                            const DoutPrefixProvider* dpp, optional_yield y,
-                           bool log_op) {
+                           uint32_t flags) {
   return DAOS_NOT_IMPLEMENTED_LOG(dpp);
 }
 
@@ -1203,7 +1203,7 @@ DaosObject::DaosDeleteOp::DaosDeleteOp(DaosObject* _source) : source(_source) {}
 // 3. Handle empty directories
 // 4. Fail when file doesn't exist
 int DaosObject::DaosDeleteOp::delete_obj(const DoutPrefixProvider* dpp,
-                                         optional_yield y, bool log_op) {
+                                         optional_yield y, uint32_t flags) {
   ldpp_dout(dpp, 20) << "DaosDeleteOp::delete_obj "
                      << source->get_key().get_oid() << " from "
                      << source->get_bucket()->get_name() << dendl;
@@ -1232,13 +1232,13 @@ int DaosObject::DaosDeleteOp::delete_obj(const DoutPrefixProvider* dpp,
 }
 
 int DaosObject::delete_object(const DoutPrefixProvider* dpp, optional_yield y,
-                              bool prevent_versioning) {
+                              uint32_t flags) {
   ldpp_dout(dpp, 20) << "DEBUG: delete_object" << dendl;
   DaosObject::DaosDeleteOp del_op(this);
   del_op.params.bucket_owner = bucket->get_info().owner;
   del_op.params.versioning_status = bucket->get_info().versioning_status();
 
-  return del_op.delete_obj(dpp, y);
+  return del_op.delete_obj(dpp, y, flags);
 }
 
 int DaosObject::delete_obj_aio(const DoutPrefixProvider* dpp,
@@ -1549,7 +1549,7 @@ int DaosAtomicWriter::complete(
     ceph::real_time set_mtime, std::map<std::string, bufferlist>& attrs,
     ceph::real_time delete_at, const char* if_match, const char* if_nomatch,
     const std::string* user_data, rgw_zone_set* zones_trace, bool* canceled,
-    optional_yield y, bool log_op) {
+    optional_yield y, uint32_t flags) {
   ldpp_dout(dpp, 20) << "DEBUG: complete" << dendl;
   bufferlist bl;
   rgw_bucket_dir_entry ent;
@@ -1606,7 +1606,7 @@ int DaosAtomicWriter::complete(
 }
 
 int DaosMultipartUpload::abort(const DoutPrefixProvider* dpp,
-                               CephContext* cct, optional_yield y, bool log_op) {
+                               CephContext* cct) {
   // Remove upload from bucket multipart index
   ldpp_dout(dpp, 20) << "DEBUG: abort" << dendl;
   return ds3_upload_remove(bucket->get_name().c_str(), get_upload_id().c_str(),
@@ -2073,7 +2073,7 @@ int DaosMultipartWriter::complete(
     ceph::real_time set_mtime, std::map<std::string, bufferlist>& attrs,
     ceph::real_time delete_at, const char* if_match, const char* if_nomatch,
     const std::string* user_data, rgw_zone_set* zones_trace, bool* canceled,
-    optional_yield y, bool log_op) {
+    optional_yield y, uint32_t flags) {
   ldpp_dout(dpp, 20) << "DaosMultipartWriter::complete(): enter part="
                      << part_num_str << dendl;
 
index 3500d9f47cd1cf04bad9bf345e37388d7d4be028..af3063a6073d461bfb5538f13e4a30eba7c72cf8 100644 (file)
@@ -589,7 +589,7 @@ class DaosObject : public StoreObject {
     DaosDeleteOp(DaosObject* _source);
 
     virtual int delete_obj(const DoutPrefixProvider* dpp,
-                           optional_yield y, bool log_op) override;
+                           optional_yield y, uint32_t flags) override;
   };
 
   ds3_obj_t* ds3o = nullptr;
@@ -606,7 +606,7 @@ class DaosObject : public StoreObject {
   virtual ~DaosObject();
 
   virtual int delete_object(const DoutPrefixProvider* dpp, optional_yield y,
-                            bool prevent_versioning = false) override;
+                            uint32_t flags) override;
   virtual int delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate,
                              Completions* aio, bool keep_index_consistent,
                              optional_yield y) override;
@@ -653,7 +653,7 @@ class DaosObject : public StoreObject {
                          const real_time& mtime, uint64_t olh_epoch,
                          const DoutPrefixProvider* dpp,
                          optional_yield y,
-                         bool log_op) override;
+                         uint32_t flags) override;
   virtual int transition_to_cloud(Bucket* bucket, rgw::sal::PlacementTier* tier,
                                   rgw_bucket_dir_entry& o,
                                   std::set<std::string>& cloud_targets,
@@ -765,7 +765,7 @@ class DaosAtomicWriter : public StoreWriter {
                        const char* if_nomatch, const std::string* user_data,
                        rgw_zone_set* zones_trace, bool* canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
 };
 
 class DaosMultipartWriter : public StoreWriter {
@@ -811,7 +811,7 @@ class DaosMultipartWriter : public StoreWriter {
                        const char* if_nomatch, const std::string* user_data,
                        rgw_zone_set* zones_trace, bool* canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
 
   const std::string& get_bucket_name();
 };
@@ -867,7 +867,7 @@ class DaosMultipartUpload : public StoreMultipartUpload {
                          int num_parts, int marker, int* next_marker,
                          bool* truncated,
                          bool assume_unsorted = false) override;
-  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct, optional_yield y, bool log_op) override;
+  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct) override;
   virtual int complete(const DoutPrefixProvider* dpp, optional_yield y,
                        CephContext* cct, std::map<int, std::string>& part_etags,
                        std::list<rgw_obj_index_key>& remove_objs,
index 5748979c15ae2dfc3467b06bdbe8852858b3620e..a6eca697538f2b4a95e822d2dae9cec0a5cb065d 100644 (file)
@@ -735,7 +735,7 @@ namespace rgw::sal {
       uint64_t olh_epoch,
       const DoutPrefixProvider* dpp,
       optional_yield y,
-      bool log_op)
+      uint32_t flags)
   {
     DB::Object op_target(store->getDB(),
         get_bucket()->get_info(), get_obj());
@@ -816,7 +816,7 @@ namespace rgw::sal {
     parent_op(&op_target)
   { }
 
-  int DBObject::DBDeleteOp::delete_obj(const DoutPrefixProvider* dpp, optional_yield y, bool log_op)
+  int DBObject::DBDeleteOp::delete_obj(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags)
   {
     parent_op.params.bucket_owner = params.bucket_owner.get_id();
     parent_op.params.versioning_status = params.versioning_status;
@@ -843,7 +843,7 @@ namespace rgw::sal {
     return ret;
   }
 
-  int DBObject::delete_object(const DoutPrefixProvider* dpp, optional_yield y, bool prevent_versioning)
+  int DBObject::delete_object(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags)
   {
     DB::Object del_target(store->getDB(), bucket->get_info(), get_obj());
     DB::Object::Delete del_op(&del_target);
@@ -910,7 +910,7 @@ namespace rgw::sal {
     return 0;
   }
 
-  int DBMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct, bool log_op)
+  int DBMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct)
   {
     std::unique_ptr<rgw::sal::Object> meta_obj = get_meta_obj();
     meta_obj->set_in_extra_data(true);
@@ -924,7 +924,7 @@ namespace rgw::sal {
     // Since the data objects are associated with meta obj till
     // MultipartUpload::Complete() is done, removing the metadata obj
     // should remove all the uploads so far.
-    ret = del_op->delete_obj(dpp, null_yield, log_op);
+    ret = del_op->delete_obj(dpp, null_yield, 0);
     if (ret < 0) {
       ldpp_dout(dpp, 20) << __func__ << ": del_op.delete_obj returned " <<
         ret << dendl;
@@ -1352,7 +1352,7 @@ namespace rgw::sal {
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op)
+                       uint32_t flags)
   {
     int ret = 0;
     /* XXX: same as AtomicWriter..consolidate code */
@@ -1511,7 +1511,7 @@ namespace rgw::sal {
                          const std::string *user_data,
                          rgw_zone_set *zones_trace, bool *canceled,
                          optional_yield y,
-                         bool log_op)
+                         uint32_t flags)
   {
     parent_op.meta.mtime = mtime;
     parent_op.meta.delete_at = delete_at;
index 1595b1532310a7b2357e8a659977dc9a565e1c3f..2d65a7f3fee11116e8dfde8f38d6a5ce9f387901 100644 (file)
@@ -505,7 +505,7 @@ protected:
                         int num_parts, int marker,
                         int* next_marker, bool* truncated,
                         bool assume_unsorted = false) override;
-    virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct, bool log_op) override;
+    virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct) override;
     virtual int complete(const DoutPrefixProvider* dpp,
                       optional_yield y, CephContext* cct,
                       std::map<int, std::string>& part_etags,
@@ -567,7 +567,7 @@ protected:
         public:
           DBDeleteOp(DBObject* _source);
 
-          virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, bool log_op) override;
+          virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags) override;
       };
 
       DBObject() = default;
@@ -586,7 +586,7 @@ protected:
 
       virtual int delete_object(const DoutPrefixProvider* dpp,
           optional_yield y,
-          bool prevent_versioning = false) override;
+          uint32_t flags) override;
       virtual int delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate, Completions* aio,
           bool keep_index_consistent, optional_yield y) override;
       virtual int copy_object(User* user,
@@ -625,7 +625,7 @@ protected:
           uint64_t olh_epoch,
           const DoutPrefixProvider* dpp,
           optional_yield y,
-          bool log_op) override;
+          uint32_t flags) override;
       virtual bool placement_rules_match(rgw_placement_rule& r1, rgw_placement_rule& r2) override;
       virtual int dump_obj_layout(const DoutPrefixProvider *dpp, optional_yield y, Formatter* f) override;
 
@@ -707,7 +707,7 @@ protected:
                          const std::string *user_data,
                          rgw_zone_set *zones_trace, bool *canceled,
                          optional_yield y,
-                         bool log_op) override;
+                         uint32_t flags) override;
   };
 
   class DBMultipartWriter : public StoreWriter {
@@ -756,7 +756,7 @@ public:
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
   };
 
   class DBStore : public StoreDriver {
index 287e2a1a5a617c66135792d39344b4ed054dcca5..8cf9db111120762a411629d2bfff1b146830774e 100644 (file)
@@ -852,9 +852,9 @@ int FilterBucket::abort_multiparts(const DoutPrefixProvider* dpp, CephContext* c
 
 int FilterObject::delete_object(const DoutPrefixProvider* dpp,
                                optional_yield y,
-                               bool prevent_versioning)
+                               uint32_t flags)
 {
-  return next->delete_object(dpp, y, prevent_versioning);
+  return next->delete_object(dpp, y, flags);
 }
 
 int FilterObject::delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate,
@@ -961,10 +961,10 @@ int FilterObject::transition(Bucket* bucket,
                             uint64_t olh_epoch,
                             const DoutPrefixProvider* dpp,
                             optional_yield y,
-                             bool log_op)
+                             uint32_t flags)
 {
   return next->transition(nextBucket(bucket), placement_rule, mtime, olh_epoch,
-                         dpp, y, log_op);
+                         dpp, y, flags);
 }
 
 int FilterObject::transition_to_cloud(Bucket* bucket,
@@ -1092,11 +1092,11 @@ int FilterObject::FilterReadOp::iterate(const DoutPrefixProvider* dpp, int64_t o
 }
 
 int FilterObject::FilterDeleteOp::delete_obj(const DoutPrefixProvider* dpp,
-                                          optional_yield y, bool log_op)
+                                          optional_yield y, uint32_t flags)
 {
   /* Copy params into next */
   next->params = params;
-  int ret = next->delete_obj(dpp, y, log_op);
+  int ret = next->delete_obj(dpp, y, flags);
   /* Copy result back */
   result = next->result;
   return ret;
@@ -1137,9 +1137,9 @@ int FilterMultipartUpload::list_parts(const DoutPrefixProvider *dpp, CephContext
   return 0;
 }
 
-int FilterMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct, bool log_op)
+int FilterMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct)
 {
-  return next->abort(dpp, cct, log_op);
+  return next->abort(dpp, cct);
 }
 
 int FilterMultipartUpload::complete(const DoutPrefixProvider *dpp,
@@ -1315,11 +1315,11 @@ int FilterWriter::complete(size_t accounted_size, const std::string& etag,
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op)
+                       uint32_t flags)
 {
   return next->complete(accounted_size, etag, mtime, set_mtime, attrs,
                        delete_at, if_match, if_nomatch, user_data, zones_trace,
-                       canceled, y, log_op);
+                       canceled, y, flags);
 }
 
 int FilterLuaManager::get_script(const DoutPrefixProvider* dpp, optional_yield y,
index 9336084a4e07fca6776286c8873629d7796798f9..fdcc9c6f1c5c7fb29a532e6bb1273409b922f227 100644 (file)
@@ -575,7 +575,7 @@ public:
     FilterDeleteOp(std::unique_ptr<DeleteOp> _next) : next(std::move(_next)) {}
     virtual ~FilterDeleteOp() = default;
 
-    virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, bool log_op) override;
+    virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags) override;
   };
 
   FilterObject(std::unique_ptr<Object> _next) : next(std::move(_next)) {}
@@ -589,7 +589,7 @@ public:
 
   virtual int delete_object(const DoutPrefixProvider* dpp,
                            optional_yield y,
-                           bool prevent_versioning = false) override;
+                           uint32_t flags) override;
   virtual int delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate,
                             Completions* aio,
                             bool keep_index_consistent, optional_yield y) override;
@@ -640,7 +640,7 @@ public:
                         uint64_t olh_epoch,
                         const DoutPrefixProvider* dpp,
                         optional_yield y,
-                         bool log_op) override;
+                         uint32_t flags) override;
   virtual int transition_to_cloud(Bucket* bucket,
                                  rgw::sal::PlacementTier* tier,
                                  rgw_bucket_dir_entry& o,
@@ -756,7 +756,7 @@ public:
                         int num_parts, int marker,
                         int* next_marker, bool* truncated,
                         bool assume_unsorted = false) override;
-  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct, bool log_op) override;
+  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct) override;
   virtual int complete(const DoutPrefixProvider* dpp,
                       optional_yield y, CephContext* cct,
                       std::map<int, std::string>& part_etags,
@@ -901,7 +901,7 @@ public:
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
 };
 
 class FilterLuaManager : public LuaManager {
index 379ec2016c5ccfd73de7aecf7046d48db54e0d2d..a7a205e8e80e1439dfdf8040e775299bf4bde84e 100644 (file)
@@ -1337,7 +1337,7 @@ int MotrObject::transition(Bucket* bucket,
     uint64_t olh_epoch,
     const DoutPrefixProvider* dpp,
     optional_yield y,
-    bool log_op)
+    uint32_t flags)
 {
   return 0;
 }
@@ -1499,7 +1499,7 @@ MotrObject::MotrDeleteOp::MotrDeleteOp(MotrObject *_source) :
 // Delete::delete_obj() in rgw_rados.cc shows how rados backend process the
 // params.
 // 2. Delete an object when its versioning is turned on.
-int MotrObject::MotrDeleteOp::delete_obj(const DoutPrefixProvider* dpp, optional_yield y, bool log_op)
+int MotrObject::MotrDeleteOp::delete_obj(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags)
 {
   ldpp_dout(dpp, 20) << "delete " << source->get_key().get_oid() << " from " << source->get_bucket()->get_name() << dendl;
 
@@ -1543,13 +1543,13 @@ int MotrObject::MotrDeleteOp::delete_obj(const DoutPrefixProvider* dpp, optional
   return 0;
 }
 
-int MotrObject::delete_object(const DoutPrefixProvider* dpp, optional_yield y, bool prevent_versioning)
+int MotrObject::delete_object(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags)
 {
   MotrObject::MotrDeleteOp del_op(this);
   del_op.params.bucket_owner = bucket->get_info().owner;
   del_op.params.versioning_status = bucket->get_info().versioning_status();
 
-  return del_op.delete_obj(dpp, y);
+  return del_op.delete_obj(dpp, y, flags);
 }
 
 int MotrObject::delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate,
@@ -2376,7 +2376,7 @@ int MotrAtomicWriter::complete(size_t accounted_size, const std::string& etag,
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op)
+                       uint32_t flags)
 {
   int rc = 0;
 
@@ -2515,7 +2515,7 @@ int MotrMultipartUpload::delete_parts(const DoutPrefixProvider *dpp)
   return store->delete_motr_idx_by_name(obj_part_iname);
 }
 
-int MotrMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct, bool log_op)
+int MotrMultipartUpload::abort(const DoutPrefixProvider *dpp, CephContext *cct)
 {
   int rc;
   // Check if multipart upload exists
@@ -3034,7 +3034,7 @@ int MotrMultipartWriter::complete(size_t accounted_size, const std::string& etag
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op)
+                       uint32_t flags)
 {
   // Should the dir entry(object metadata) be updated? For example
   // mtime.
index b92b724839a8e0a03da33878e3e54bef69d9cfaa..c09c95ede0bcaa34f602ccdddff113fc72e85216 100644 (file)
@@ -660,7 +660,7 @@ class MotrObject : public StoreObject {
       public:
         MotrDeleteOp(MotrObject* _source);
 
-        virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, bool log_op) override;
+        virtual int delete_obj(const DoutPrefixProvider* dpp, optional_yield y, uint32_t flags) override;
     };
 
     MotrObject() = default;
@@ -676,7 +676,7 @@ class MotrObject : public StoreObject {
 
     virtual int delete_object(const DoutPrefixProvider* dpp,
         optional_yield y,
-        bool prevent_versioning = false) override;
+        uint32_t flags) override;
     virtual int delete_obj_aio(const DoutPrefixProvider* dpp, RGWObjState* astate, Completions* aio,
         bool keep_index_consistent, optional_yield y) override;
     virtual int copy_object(User* user,
@@ -713,7 +713,7 @@ class MotrObject : public StoreObject {
         uint64_t olh_epoch,
         const DoutPrefixProvider* dpp,
         optional_yield y,
-        bool log_op) override;
+        uint32_t flags) override;
     virtual bool placement_rules_match(rgw_placement_rule& r1, rgw_placement_rule& r2) override;
     virtual int dump_obj_layout(const DoutPrefixProvider *dpp, optional_yield y, Formatter* f) override;
 
@@ -821,7 +821,7 @@ class MotrAtomicWriter : public StoreWriter {
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
 
   unsigned populate_bvec(unsigned len, bufferlist::iterator &bi);
   void cleanup();
@@ -869,7 +869,7 @@ public:
                        const std::string *user_data,
                        rgw_zone_set *zones_trace, bool *canceled,
                        optional_yield y,
-                       bool log_op) override;
+                       uint32_t flags) override;
 };
 
 // The implementation of multipart upload in POC roughly follows the
@@ -944,7 +944,7 @@ public:
                         int num_parts, int marker,
                         int* next_marker, bool* truncated,
                         bool assume_unsorted = false) override;
-  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct, bool log_op) override;
+  virtual int abort(const DoutPrefixProvider* dpp, CephContext* cct) override;
   virtual int complete(const DoutPrefixProvider* dpp,
                       optional_yield y, CephContext* cct,
                       std::map<int, std::string>& part_etags,