From: Yehuda Sadeh Date: Wed, 14 Jan 2015 19:47:18 +0000 (-0800) Subject: rgw: wait for completion only if not completion available X-Git-Tag: v0.92~12^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f3a57ee6a620b6caf88ef38f77774af083d92340;p=ceph.git rgw: wait for completion only if not completion available In a bucket aio operation, wait for completions only if there are no completions available. Otherwise we might wait forever, as everything already complete. Signed-off-by: Yehuda Sadeh --- diff --git a/src/cls/rgw/cls_rgw_client.cc b/src/cls/rgw/cls_rgw_client.cc index fa33dac24be2..545b36bcff56 100644 --- a/src/cls/rgw/cls_rgw_client.cc +++ b/src/cls/rgw/cls_rgw_client.cc @@ -66,8 +66,11 @@ bool BucketIndexAioManager::wait_for_completions(int valid_ret_code, lock.Unlock(); return false; } - // Wait for AIO completion - cond.Wait(lock); + + if (completions.empty()) { + // Wait for AIO completion + cond.Wait(lock); + } // Clear the completed AIOs map::iterator iter = completions.begin();