From 66ac828f97c1b368e41c51be4e5699f3e92d47f9 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 --- 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 034660a11ed1..b957f0aaaa69 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -1906,11 +1906,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.47.3