From: Cory Snyder Date: Fri, 12 Jan 2024 14:51:14 +0000 (+0000) Subject: rgw: fix issue with concurrent versioned deletes leaving behind olh entries X-Git-Tag: v17.2.8~137^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=927c007cb64d40ccd3ce3947c057ea2d30447198;p=ceph.git 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) --- diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index eb7b1e0d7daf..bffe857e46ef 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; }