--- linux/fs/eventpoll.c 2006-11-08 15:37:36.000000000 +0100 +++ linux/fs/eventpoll.c 2006-11-08 15:38:31.000000000 +0100 @@ -1447,7 +1447,7 @@ &events[eventcnt].events) || __put_user(epi->event.data, &events[eventcnt].data)) - return -EFAULT; + return eventcnt ? eventcnt : -EFAULT; if (epi->event.events & EPOLLONESHOT) epi->event.events &= EP_PRIVATE_BITS; eventcnt++;