From: Ali Masarwa Date: Tue, 12 Aug 2025 12:15:23 +0000 (+0300) Subject: RGW | fixed enqueueing the overwritten object for gc X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8045fe66e9e480755b1c75b4b1382da070caa1a1;p=ceph.git RGW | fixed enqueueing the overwritten object for gc Signed-off-by: Ali Masarwa (cherry picked from commit 69353cfe247f3757853c1964f1b607b2a4952d94) --- 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;