From 927c007cb64d40ccd3ce3947c057ea2d30447198 Mon Sep 17 00:00:00 2001 From: Cory Snyder Date: Fri, 12 Jan 2024 14:51:14 +0000 Subject: [PATCH] rgw: fix issue with concurrent versioned deletes leaving behind olh entries Fixes a scenario where BI OLH entries were left behind after racing delete requests for the same versioned object instance. Fixes: https://tracker.ceph.com/issues/64014 Signed-off-by: Cory Snyder (cherry picked from commit 66ac828f97c1b368e41c51be4e5699f3e92d47f9) --- src/cls/rgw/cls_rgw.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index eb7b1e0d7dafd..bffe857e46eff 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -1786,11 +1786,10 @@ static int rgw_bucket_unlink_instance(cls_method_context_t hctx, bufferlist *in, BIOLHEntry olh(hctx, dest_key); int ret = obj.init(); - if (ret == -ENOENT) { - return 0; /* already removed */ - } if (ret < 0) { - CLS_LOG(0, "ERROR: obj.init() returned ret=%d", ret); + if (ret != -ENOENT) { + CLS_LOG(0, "ERROR: obj.init() returned ret=%d", ret); + } return ret; } -- 2.39.5