From cab4c5011d0dc6d98e2115f46b1185a17804df49 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 30 Jun 2010 13:55:41 -0400 Subject: Add try_inotify option There are some special cases where inotify cannot be used, even if the host OS claims that it is supported. In these cases, it should be possible to explicitly disable the use of inotify. https://fedorahosted.org/sssd/ticket/484 --- src/monitor/monitor.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/monitor') diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c index 41eadf52..47832c95 100644 --- a/src/monitor/monitor.c +++ b/src/monitor/monitor.c @@ -1632,6 +1632,7 @@ static int monitor_config_file(TALLOC_CTX *mem_ctx, monitor_reconf_fn fn) { int ret, err; + bool use_inotify; struct timeval tv; struct stat file_stat; struct config_file_callback *cb = NULL; @@ -1650,8 +1651,24 @@ static int monitor_config_file(TALLOC_CTX *mem_ctx, ctx->file_ctx->parent_ctx = mem_ctx; ctx->file_ctx->mt_ctx = ctx; } - ret = try_inotify(ctx->file_ctx, file, fn); + + ret = confdb_get_bool(ctx->cdb, ctx, + CONFDB_MONITOR_CONF_ENTRY, + CONFDB_MONITOR_TRY_INOTIFY, + true, &use_inotify); if (ret != EOK) { + talloc_free(ctx->file_ctx); + return ret; + } + + if (use_inotify) { + ret = try_inotify(ctx->file_ctx, file, fn); + if (ret != EOK) { + use_inotify = false; + } + } + + if (!use_inotify) { /* Could not monitor file with inotify, fall back to polling */ cb = talloc_zero(ctx->file_ctx, struct config_file_callback); if (!cb) { -- cgit