From 8045fe66e9e480755b1c75b4b1382da070caa1a1 Mon Sep 17 00:00:00 2001 From: Ali Masarwa Date: Tue, 12 Aug 2025 15:15:23 +0300 Subject: [PATCH] RGW | fixed enqueueing the overwritten object for gc Signed-off-by: Ali Masarwa (cherry picked from commit 69353cfe247f3757853c1964f1b607b2a4952d94) --- src/rgw/driver/rados/rgw_rados.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/rgw/driver/rados/rgw_rados.cc b/src/rgw/driver/rados/rgw_rados.cc index 6d8123fc16b..13296ab60fd 100644 --- a/src/rgw/driver/rados/rgw_rados.cc +++ b/src/rgw/driver/rados/rgw_rados.cc @@ -3258,9 +3258,8 @@ int RGWRados::Object::Write::_do_write_meta(uint64_t size, uint64_t accounted_si ptag = index_op->get_optag(); } - r = target->get_state(rctx.dpp, &target->state, &target->manifest, false, rctx.y); - if (r < 0) - return r; + target->manifest = manifest; + target->state = state; RGWObjState* current_state = target->state; if (!target->obj.key.instance.empty()) { r = target->get_current_version_state(rctx.dpp, current_state, rctx.y); @@ -6033,6 +6032,9 @@ int RGWRados::bucket_suspended(const DoutPrefixProvider *dpp, rgw_bucket& bucket int RGWRados::Object::complete_atomic_modification(const DoutPrefixProvider *dpp, bool keep_tail, optional_yield y) { + int r = get_state(dpp, &state, &manifest, false, y); + if (r < 0) + return r; if ((!manifest) || keep_tail) return 0; -- 2.47.3