]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async/rdma: retry if poll() returns EINTR 25138/head
authorStig Telfer <stig@stackhpc.com>
Sat, 10 Nov 2018 21:01:53 +0000 (22:01 +0100)
committerKefu Chai <kchai@redhat.com>
Wed, 20 Feb 2019 04:02:17 +0000 (12:02 +0800)
Fixes: https://tracker.ceph.com/issues/37292
Signed-off-by: Stig Telfer <stig@stackhpc.com>
src/msg/async/rdma/RDMAStack.cc

index d8e2a4957cb3b9c15c4b93f20fcbbcaba6208648..f63a8e7d1f2b4ea37a30d22106bede264e5f8d41 100644 (file)
@@ -15,6 +15,7 @@
  */
 
 #include <poll.h>
+#include <errno.h>
 #include <sys/time.h>
 #include <sys/resource.h>
 
@@ -284,7 +285,7 @@ void RDMADispatcher::polling()
         r = 0;
         perf_logger->set(l_msgr_rdma_polling, 0);
         while (!done && r == 0) {
-          r = poll(channel_poll, 2, 100);
+          r = TEMP_FAILURE_RETRY(poll(channel_poll, 2, 100));
           if (r < 0) {
             r = -errno;
             lderr(cct) << __func__ << " poll failed " << r << dendl;