]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/eventpoll.c
Merge branch 'linus' into sched/devel
[linux-2.6-omap-h63xx.git] / fs / eventpoll.c
index 3fd4014f3c5a5a7f5215e5bb61f51206e6c1202b..7cc0eb756b55e99e5f876eaa43c6c4e466b27b05 100644 (file)
@@ -1041,28 +1041,27 @@ retry:
 }
 
 /*
- * It opens an eventpoll file descriptor. The "size" parameter is there
- * for historical reasons, when epoll was using an hash instead of an
- * RB tree. With the current implementation, the "size" parameter is ignored
- * (besides sanity checks).
+ * Open an eventpoll file descriptor.
  */
-asmlinkage long sys_epoll_create2(int size, int flags)
+asmlinkage long sys_epoll_create1(int flags)
 {
        int error, fd = -1;
        struct eventpoll *ep;
 
+       /* Check the EPOLL_* constant for consistency.  */
+       BUILD_BUG_ON(EPOLL_CLOEXEC != O_CLOEXEC);
+
        if (flags & ~EPOLL_CLOEXEC)
                return -EINVAL;
 
        DNPRINTK(3, (KERN_INFO "[%p] eventpoll: sys_epoll_create(%d)\n",
-                    current, size));
+                    current, flags));
 
        /*
-        * Sanity check on the size parameter, and create the internal data
-        * structure ( "struct eventpoll" ).
+        * Create the internal data structure ( "struct eventpoll" ).
         */
-       error = -EINVAL;
-       if (size <= 0 || (error = ep_alloc(&ep)) < 0) {
+       error = ep_alloc(&ep);
+       if (error < 0) {
                fd = error;
                goto error_return;
        }
@@ -1078,14 +1077,17 @@ asmlinkage long sys_epoll_create2(int size, int flags)
 
 error_return:
        DNPRINTK(3, (KERN_INFO "[%p] eventpoll: sys_epoll_create(%d) = %d\n",
-                    current, size, fd));
+                    current, flags, fd));
 
        return fd;
 }
 
 asmlinkage long sys_epoll_create(int size)
 {
-       return sys_epoll_create2(size, 0);
+       if (size < 0)
+               return -EINVAL;
+
+       return sys_epoll_create1(0);
 }
 
 /*