From: Spandan Kumar Sahu Date: Mon, 20 Mar 2017 13:26:05 +0000 (+0530) Subject: rbd: stop indefinite thread waiting in krbd.cc X-Git-Tag: v12.0.3~75^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=666fde7176e3496e942a9c872462edbbf7340b1a;p=ceph.git rbd: stop indefinite thread waiting in krbd.cc Fixes: http://tracker.ceph.com/issues/17195 Signed-off-by: Spandan Kumar Sahu --- diff --git a/src/krbd.cc b/src/krbd.cc index d1cdf5529779..c04b7be54582 100644 --- a/src/krbd.cc +++ b/src/krbd.cc @@ -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);