autofs-5.0.7 - dont start readmap unless ready From: Ian Kent State transitions should only be made when an autofs point goes to state ST_READY or when a new task is added to an empty task queue. --- CHANGELOG | 1 + daemon/state.c | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 2734fe3..3228d6b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -56,6 +56,7 @@ - don't override LDFLAGS in make rules. - fix a couple of compiler warnings. - add after sssd dependency to unit file. +- dont start readmap unless ready. 25/07/2012 autofs-5.0.7 ======================= diff --git a/daemon/state.c b/daemon/state.c index ddc5556..8d81788 100644 --- a/daemon/state.c +++ b/daemon/state.c @@ -818,14 +818,13 @@ done: new = st_alloc_task(ap, state); if (new) list_add(&new->list, head); + /* Added to empty state queue, kick state machine */ + signaled = 1; + status = pthread_cond_signal(&cond); + if (status) + fatal(status); } - /* Added task, encourage state machine */ - signaled = 1; - status = pthread_cond_signal(&cond); - if (status) - fatal(status); - return 1; } @@ -1131,6 +1130,10 @@ static void *st_queue_handler(void *arg) task = list_entry(p, struct state_queue, list); p = p->next; + /* Task may have been canceled before it started */ + if (!task->thid && task->cancel) + goto remove; + if (!task->busy) { /* Start a new task */ task->busy = 1;