From: Tongliang Deng Date: Thu, 21 Jul 2022 11:54:12 +0000 (+0000) Subject: rgwlc: lock_lambda overwrites ret val X-Git-Tag: v19.0.0~58^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F47208%2Fhead;p=ceph.git rgwlc: lock_lambda overwrites ret val `lock_lambda` captures `ret` by reference, it will overwrites returned value of `bucket_lc_process` when `wait_backoff` is called. Fixes: c069eb7ff09b52003fa00a5cc83b1e52370032f5. Signed-off-by: Tongliang Deng --- diff --git a/src/rgw/rgw_lc.cc b/src/rgw/rgw_lc.cc index 978f9736b8e..4ae3a950ade 100644 --- a/src/rgw/rgw_lc.cc +++ b/src/rgw/rgw_lc.cc @@ -2133,14 +2133,14 @@ int RGWLC::process(int index, int max_lock_secs, LCWorker* worker, utime_t lock_for_s(max_lock_secs, 0); const auto& lock_lambda = [&]() { - ret = lock->try_lock(this, lock_for_s, null_yield); + int ret = lock->try_lock(this, lock_for_s, null_yield); if (ret == 0) { return true; } if (ret == -EBUSY || ret == -EEXIST) { /* already locked by another lc processor */ return false; - } + } return false; };