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: v19.3.0~92^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=66ac828f97c1b368e41c51be4e5699f3e92d47f9;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 --- 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; }