From 66a959c405222da90765dbcc28c8d0d0bbe4d3cf Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Thu, 15 Mar 2012 01:01:19 +0100 Subject: [PATCH] linux: try inotify_init if inotify_init1 returns ENOSYS The kernel may be older than the kernel headers that libuv is compiled against. --- src/unix/linux.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/unix/linux.c b/src/unix/linux.c index 3ed65653..809e644d 100644 --- a/src/unix/linux.c +++ b/src/unix/linux.c @@ -170,11 +170,16 @@ uint64_t uv_get_total_memory(void) { #if HAVE_INOTIFY_INIT || HAVE_INOTIFY_INIT1 static int new_inotify_fd(void) { -#if HAVE_INOTIFY_INIT1 - return inotify_init1(IN_NONBLOCK | IN_CLOEXEC); -#else int fd; +#if HAVE_INOTIFY_INIT1 + fd = inotify_init1(IN_NONBLOCK | IN_CLOEXEC); + if (fd != -1) + return fd; + if (errno != ENOSYS) + return -1; +#endif + if ((fd = inotify_init()) == -1) return -1; @@ -184,7 +189,6 @@ static int new_inotify_fd(void) { } return fd; -#endif }