]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: wait for completion only if not completion available
authorYehuda Sadeh <yehuda@redhat.com>
Wed, 14 Jan 2015 19:47:18 +0000 (11:47 -0800)
committerYehuda Sadeh <yehuda@redhat.com>
Wed, 14 Jan 2015 19:47:18 +0000 (11:47 -0800)
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 <yehuda@redhat.com>
src/cls/rgw/cls_rgw_client.cc

index fa33dac24be25d2ad6fc6ddc84d13fcddf5a1405..545b36bcff569e11acba7361e4c468c05a6409f9 100644 (file)
@@ -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<int, librados::AioCompletion*>::iterator iter = completions.begin();