Merge pull request #27025 from yangdongsheng/poll_timeout

rbd: krbd: return -ETIMEDOUT in polling

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
This commit is contained in:
Jason Dillaman 2019-03-20 08:58:04 -04:00 committed by GitHub
commit 4f123365f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -241,12 +241,17 @@ static int wait_for_udev_add(struct udev_monitor *mon, const krbd_spec& spec,
for (;;) {
struct pollfd fds[1];
struct udev_device *dev;
int r;
fds[0].fd = udev_monitor_get_fd(mon);
fds[0].events = POLLIN;
if (poll(fds, 1, POLL_TIMEOUT) < 0)
r = poll(fds, 1, POLL_TIMEOUT);
if (r < 0)
return -errno;
if (r == 0)
return -ETIMEDOUT;
dev = udev_monitor_receive_device(mon);
if (!dev)
continue;
@ -572,12 +577,17 @@ static int wait_for_udev_remove(struct udev_monitor *mon, dev_t devno)
for (;;) {
struct pollfd fds[1];
struct udev_device *dev;
int r;
fds[0].fd = udev_monitor_get_fd(mon);
fds[0].events = POLLIN;
if (poll(fds, 1, POLL_TIMEOUT) < 0)
r = poll(fds, 1, POLL_TIMEOUT);
if (r < 0)
return -errno;
if (r == 0)
return -ETIMEDOUT;
dev = udev_monitor_receive_device(mon);
if (!dev)
continue;