From 6d4d26fda93d9fd0d37c9a06ab5a508704b5ac97 Mon Sep 17 00:00:00 2001 From: Mohamad Gebai Date: Mon, 4 Dec 2017 07:44:40 -0500 Subject: [PATCH] rados: use WaitInterval()'s return value instead of manual timing Signed-off-by: Mohamad Gebai --- src/librados/RadosClient.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/librados/RadosClient.cc b/src/librados/RadosClient.cc index 2203126c533..17c4bfcd7a1 100644 --- a/src/librados/RadosClient.cc +++ b/src/librados/RadosClient.cc @@ -550,14 +550,12 @@ int librados::RadosClient::wait_for_osdmap() if (objecter->with_osdmap(std::mem_fn(&OSDMap::get_epoch)) == 0) { ldout(cct, 10) << __func__ << " waiting" << dendl; - utime_t start = ceph_clock_now(); while (objecter->with_osdmap(std::mem_fn(&OSDMap::get_epoch)) == 0) { if (timeout.is_zero()) { cond.Wait(lock); } else { - cond.WaitInterval(lock, timeout); - utime_t elapsed = ceph_clock_now() - start; - if (elapsed > timeout) { + int r = cond.WaitInterval(lock, timeout); + if (r == ETIMEDOUT) { lderr(cct) << "timed out waiting for first osdmap from monitors" << dendl; return -ETIMEDOUT; -- 2.39.5