From: Jane Zhu Date: Wed, 2 Apr 2025 15:53:47 +0000 (+0000) Subject: rgw: remove keep_tail from RGWObjState X-Git-Tag: v18.2.5~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=94bbd12c66b5233b8b45e185bba432ffbc4cacfd;p=ceph.git rgw: remove keep_tail from RGWObjState Signed-off-by: Jane Zhu (cherry picked from commit fd76b6466c298121994ba65cce3c0e76f8568841) Conflicts: src/rgw/rgw_sal_store.h RGWObjState is in rgw_sal.h on reef (cherry picked from commit b94fcdfb6a2e01fd471e8c6ebd34145bebb78e20) --- diff --git a/src/rgw/driver/dbstore/common/dbstore.h b/src/rgw/driver/dbstore/common/dbstore.h index b26cc116e82dc..7ce3e94bd5b2f 100644 --- a/src/rgw/driver/dbstore/common/dbstore.h +++ b/src/rgw/driver/dbstore/common/dbstore.h @@ -518,7 +518,7 @@ class DBOp { * * - RGWObjState. Below are omitted from that struct * as they seem in-memory variables - * * is_atomic, has_atts, exists, prefetch_data, keep_tail, + * * is_atomic, has_atts, exists, prefetch_data, * - RGWObjManifest * * Extra field added "IsMultipart" to flag multipart uploads, diff --git a/src/rgw/driver/rados/rgw_putobj_processor.cc b/src/rgw/driver/rados/rgw_putobj_processor.cc index 712cb311b68ab..6d19129f39bc1 100644 --- a/src/rgw/driver/rados/rgw_putobj_processor.cc +++ b/src/rgw/driver/rados/rgw_putobj_processor.cc @@ -667,7 +667,7 @@ int AppendObjectProcessor::prepare(optional_yield y) tail_placement_rule.storage_class = RGW_STORAGE_CLASS_STANDARD; } manifest.set_prefix(cur_manifest->get_prefix()); - astate->keep_tail = true; + keep_tail = true; } manifest.set_multipart_part_rule(store->ctx()->_conf->rgw_obj_stripe_size, cur_part_num); @@ -733,6 +733,7 @@ int AppendObjectProcessor::complete(size_t accounted_size, const string &etag, c obj_op.meta.user_data = user_data; obj_op.meta.zones_trace = zones_trace; obj_op.meta.modify_tail = true; + obj_op.meta.keep_tail = keep_tail; obj_op.meta.appendable = true; //Add the append part number bufferlist cur_part_num_bl; diff --git a/src/rgw/driver/rados/rgw_putobj_processor.h b/src/rgw/driver/rados/rgw_putobj_processor.h index b1946c0492cc1..a36c67911e817 100644 --- a/src/rgw/driver/rados/rgw_putobj_processor.h +++ b/src/rgw/driver/rados/rgw_putobj_processor.h @@ -254,6 +254,7 @@ class MultipartObjectProcessor : public ManifestObjectProcessor { uint64_t *cur_accounted_size; std::string cur_etag; const std::string unique_tag; + bool keep_tail; RGWObjManifest *cur_manifest; @@ -271,7 +272,7 @@ class MultipartObjectProcessor : public ManifestObjectProcessor { : ManifestObjectProcessor(aio, store, bucket_info, ptail_placement_rule, owner, obj_ctx, _head_obj, dpp, y), position(position), cur_size(0), cur_accounted_size(cur_accounted_size), - unique_tag(unique_tag), cur_manifest(nullptr) + unique_tag(unique_tag), keep_tail(false), cur_manifest(nullptr) {} int prepare(optional_yield y) override; int complete(size_t accounted_size, const std::string& etag, diff --git a/src/rgw/driver/rados/rgw_rados.cc b/src/rgw/driver/rados/rgw_rados.cc index b1b43dbc3179e..31918add52dfb 100644 --- a/src/rgw/driver/rados/rgw_rados.cc +++ b/src/rgw/driver/rados/rgw_rados.cc @@ -4596,8 +4596,6 @@ int RGWRados::copy_obj(RGWObjectCtx& src_obj_ctx, pmanifest = &manifest; } else { pmanifest = amanifest; - /* don't send the object's tail for garbage collection */ - astate->keep_tail = true; } if (copy_first) { @@ -5002,7 +5000,7 @@ int RGWRados::bucket_suspended(const DoutPrefixProvider *dpp, rgw_bucket& bucket int RGWRados::Object::complete_atomic_modification(const DoutPrefixProvider *dpp, bool keep_tail) { - if ((!manifest) || state->keep_tail || keep_tail) + if ((!manifest) || keep_tail) return 0; cls_rgw_obj_chain chain; diff --git a/src/rgw/rgw_sal.cc b/src/rgw/rgw_sal.cc index 58a21f707f58e..a4d49eac3752a 100644 --- a/src/rgw/rgw_sal.cc +++ b/src/rgw/rgw_sal.cc @@ -85,7 +85,6 @@ RGWObjState::RGWObjState(const RGWObjState& rhs) : obj (rhs.obj) { data = rhs.data; } prefetch_data = rhs.prefetch_data; - keep_tail = rhs.keep_tail; is_olh = rhs.is_olh; objv_tracker = rhs.objv_tracker; pg_ver = rhs.pg_ver; diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 50fe30c6bd815..54820a1a6074d 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -119,7 +119,6 @@ struct RGWObjState { bool has_data{false}; bufferlist data; bool prefetch_data{false}; - bool keep_tail{false}; bool is_olh{false}; bufferlist olh_tag; uint64_t pg_ver{false};