0eeca28300
inotify is intended to correct the deficiencies of dnotify, particularly its inability to scale and its terrible user interface: * dnotify requires the opening of one fd per each directory that you intend to watch. This quickly results in too many open files and pins removable media, preventing unmount. * dnotify is directory-based. You only learn about changes to directories. Sure, a change to a file in a directory affects the directory, but you are then forced to keep a cache of stat structures. * dnotify's interface to user-space is awful. Signals? inotify provides a more usable, simple, powerful solution to file change notification: * inotify's interface is a system call that returns a fd, not SIGIO. You get a single fd, which is select()-able. * inotify has an event that says "the filesystem that the item you were watching is on was unmounted." * inotify can watch directories or files. Inotify is currently used by Beagle (a desktop search infrastructure), Gamin (a FAM replacement), and other projects. See Documentation/filesystems/inotify.txt. Signed-off-by: Robert Love <rml@novell.com> Cc: John McCutchan <ttb@tentacle.dhs.org> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
---|---|---|
.. | ||
acpi | ||
cpu | ||
timers | ||
apic.c | ||
apm.c | ||
asm-offsets.c | ||
bootflag.c | ||
cpuid.c | ||
crash.c | ||
dmi_scan.c | ||
doublefault.c | ||
early_printk.c | ||
efi_stub.S | ||
efi.c | ||
entry.S | ||
head.S | ||
i386_ksyms.c | ||
i387.c | ||
i8259.c | ||
init_task.c | ||
io_apic.c | ||
ioport.c | ||
irq.c | ||
kprobes.c | ||
ldt.c | ||
machine_kexec.c | ||
Makefile | ||
mca.c | ||
microcode.c | ||
module.c | ||
mpparse.c | ||
msr.c | ||
nmi.c | ||
numaq.c | ||
pci-dma.c | ||
process.c | ||
ptrace.c | ||
quirks.c | ||
reboot_fixups.c | ||
reboot.c | ||
relocate_kernel.S | ||
scx200.c | ||
semaphore.c | ||
setup.c | ||
sigframe.h | ||
signal.c | ||
smp.c | ||
smpboot.c | ||
srat.c | ||
summit.c | ||
sys_i386.c | ||
syscall_table.S | ||
sysenter.c | ||
time_hpet.c | ||
time.c | ||
trampoline.S | ||
traps.c | ||
vm86.c | ||
vmlinux.lds.S | ||
vsyscall-int80.S | ||
vsyscall-note.S | ||
vsyscall-sigreturn.S | ||
vsyscall-sysenter.S | ||
vsyscall.lds.S | ||
vsyscall.S |