Hi again Johannes,
On 25/07/2005 7:37 p.m., Johannes Berg wrote:
Hi,
I note that dovecot supported inotify from -test77, and now the Linux kernel supports it starting from linux-2.6.13-rc3. So in theory I should be set to go. I'm using an -mm kernel, and it was built with inotify, on FC4/devel.
I suppose I'll reply since I wrote the code ;)
checking for poll... yes configure: error: inotify requested but not available, check for existence of <linux/inotify.h> /bin/sh ./config.status --recheck
Makes sense, you need the inotify userspace header.
What is required for inotify to be recognised and built into dovecot? I've tried copying the header from linux-2.6/include/linux/inotify.h to the /usr/include/linux directory, but that didn't help - and seems wrong to do anyway.
Sounds about right -- that particular header is safe for userspace. But if that didn't help then I don't know what's going wrong. Check config.log please.
| #define IOLOOP_POLL | /* end confdefs.h. */ | | #define _GNU_SOURCE | #include <sys/ioctl.h> | #include <fcntl.h> | #include <linux/inotify.h> | | int | main () | { | | struct inotify_watch_request req; | int wd, dev_fd; | char * fn = "/tmp"; | dev_fd = open ("/dev/inotify", O_RDONLY); | req.fd = open (fn, O_RDONLY); | if (req.fd < 0) return -1; | req.mask = IN_CREATE | IN_DELETE | IN_MOVED_FROM | IN_MOVED_TO | IN_MODIFY | IN_ACCESS; | wd = ioctl (dev_fd, INOTIFY_WATCH, &req); | close(req.fd); | ioctl (dev_fd, INOTIFY_IGNORE, &wd); | | ; | return 0; | } configure:23296: error: inotify requested but not available, check for existence of <linux/inotify.h>
Also, please try the header from http://www.kernel.org/pub/linux/kernel/people/rml/inotify/headers/
It's bit-for-bit identical with the one in the kernel - tested with both and diffed :)
inotify is definitely there and built into the kernel:
[root@tornado ~]# cat /proc/sys/fs/inotify/max_ max_queued_events max_user_instances max_user_watches [root@tornado ~]#
and here:
[root@tornado tmp]# ls -la /usr/include/linux/inotify.h -rw-r--r-- 1 root root 3386 Jul 20 01:29 /usr/include/linux/inotify.h [root@tornado tmp]#
and here:
[root@tornado tmp]# ls -la /dev/inotify crw-r--r-- 1 root root 10, 63 Jul 25 20:03 /dev/inotify [root@tornado tmp]#
I tried with latest -mm kernel, as well as latest Fedora devel kernel - all are supposed to have inotify support, but both have the same problem.
Not sure what else I can really try :( Have you got any other ideas?
Reuben