]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: stop indefinite thread waiting in krbd.cc 14051/head
authorSpandan Kumar Sahu <spandankumarsahu@gmail.com>
Mon, 20 Mar 2017 13:26:05 +0000 (18:56 +0530)
committerSpandan Kumar Sahu <spandankumarsahu@gmail.com>
Mon, 27 Mar 2017 06:25:48 +0000 (11:55 +0530)
Fixes: http://tracker.ceph.com/issues/17195
Signed-off-by: Spandan Kumar Sahu <spandankumarsahu@gmail.com>
src/krbd.cc

index d1cdf5529779e2276bc6c8c63eeb15edd94e8074..c04b7be54582d109dbcf7eff64629971133cc11f 100644 (file)
@@ -42,6 +42,8 @@
 
 using namespace std;
 
+const static int POLL_TIMEOUT=120000;
+
 struct krbd_ctx {
   CephContext *cct;
   struct udev *udev;
@@ -189,7 +191,7 @@ static int wait_for_udev_add(struct udev_monitor *mon, const char *pool,
 
     fds[0].fd = udev_monitor_get_fd(mon);
     fds[0].events = POLLIN;
-    if (poll(fds, 1, -1) < 0)
+    if (poll(fds, 1, POLL_TIMEOUT) < 0)
       return -errno;
 
     dev = udev_monitor_receive_device(mon);
@@ -473,7 +475,7 @@ static int wait_for_udev_remove(struct udev_monitor *mon, dev_t devno)
 
     fds[0].fd = udev_monitor_get_fd(mon);
     fds[0].events = POLLIN;
-    if (poll(fds, 1, -1) < 0)
+    if (poll(fds, 1, POLL_TIMEOUT) < 0)
       return -errno;
 
     dev = udev_monitor_receive_device(mon);