aboutsummaryrefslogtreecommitdiff
path: root/nscd/cache.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-06-12 22:40:27 +0000
committerUlrich Drepper <drepper@redhat.com>2008-06-12 22:40:27 +0000
commit5228ba2fe881133ccc0f9b3ad8a1ebbe9112a6f2 (patch)
tree226b31672d444eaf3ad88b7ee96bbf55d660b8dd /nscd/cache.c
parent5a337776da5b7ff1dbbf0fdcd093a3b6af2cdf83 (diff)
downloadglibc-5228ba2fe881133ccc0f9b3ad8a1ebbe9112a6f2.zip
glibc-5228ba2fe881133ccc0f9b3ad8a1ebbe9112a6f2.tar.gz
glibc-5228ba2fe881133ccc0f9b3ad8a1ebbe9112a6f2.tar.bz2
* nscd/nscd.h (struct database_dyn): Add inotify_descr and clear_cache
fields. * nscd/connections.c (inotify_fd): New variable. (nscd_init): Try to open an inotify descriptor. If successful, watch files for databases using inotify instead of having prune threads stat the files. (nscd_run_prune): Recognize clear_cache flag being set and call prune_cache appropriately. (main_loop_poll): Add inotify descriptor to wait set and handle the reported changes. (main_loop_epoll): Likewise. * nscd/cache.c (prune_cache): Don't stat files for databases if inotify is used. * sysdeps/unix/sysv/linux/Makefile [subdir=nscd] (CFLAGS-connections.c): Add -DHAVE_INOTIFY.
Diffstat (limited to 'nscd/cache.c')
-rw-r--r--nscd/cache.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/nscd/cache.c b/nscd/cache.c
index 2faaf34..cd6e6b4 100644
--- a/nscd/cache.c
+++ b/nscd/cache.c
@@ -274,7 +274,7 @@ prune_cache (struct database_dyn *table, time_t now, int fd)
/* If we check for the modification of the underlying file we invalidate
the entries also in this case. */
- if (table->check_file && now != LONG_MAX)
+ if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX)
{
struct stat64 st;