X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=fs%2Feventfd.c;h=08bf558d04080ffe0a3ced77a5660d4af4e1182f;hb=6d615c78fb92fbd80e52ba7acb2d4c4d503006c3;hp=bd420e6478add9dbe241816cc5dbb8b8045a5052;hpb=b087498eb5605673b0f260a7620d91818cd72304;p=linux-2.6-omap-h63xx.git diff --git a/fs/eventfd.c b/fs/eventfd.c index bd420e6478a..08bf558d040 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -203,7 +203,11 @@ asmlinkage long sys_eventfd2(unsigned int count, int flags) int fd; struct eventfd_ctx *ctx; - if (flags & ~EFD_CLOEXEC) + /* Check the EFD_* constants for consistency. */ + BUILD_BUG_ON(EFD_CLOEXEC != O_CLOEXEC); + BUILD_BUG_ON(EFD_NONBLOCK != O_NONBLOCK); + + if (flags & ~(EFD_CLOEXEC | EFD_NONBLOCK)) return -EINVAL; ctx = kmalloc(sizeof(*ctx), GFP_KERNEL); @@ -218,7 +222,7 @@ asmlinkage long sys_eventfd2(unsigned int count, int flags) * anon_inode_getfd() will install the fd. */ fd = anon_inode_getfd("[eventfd]", &eventfd_fops, ctx, - flags & O_CLOEXEC); + flags & (O_CLOEXEC | O_NONBLOCK)); if (fd < 0) kfree(ctx); return fd;