Regular files are always ready for I/O, no need to poll on them.

diff --git a/server/fd.c b/server/fd.c
index 8e9237c..c4c4445 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -1347,9 +1347,13 @@
 /* default signaled() routine for objects that poll() on an fd */
 int default_fd_signaled( struct object *obj, struct thread *thread )
 {
+    int events, ret;
     struct fd *fd = get_obj_fd( obj );
-    int events = fd->fd_ops->get_poll_events( fd );
-    int ret = check_fd_events( fd, events ) != 0;
+
+    if (fd->inode) return 1;  /* regular files are always signaled */
+
+    events = fd->fd_ops->get_poll_events( fd );
+    ret = check_fd_events( fd, events ) != 0;
 
     if (ret)
         set_fd_events( fd, 0 ); /* stop waiting on select() if we are signaled */