diff --git a/CHANGELOG b/CHANGELOG index c09ae44..42327f3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ - cthon shutdown expire fix. - cthon more map parser corrections. - cthon cleanup and corrections. +- cthon more cleanup and corrections. 13/7/2006 autofs-5.0.1 rc1 -------------------------- diff --git a/lib/master.c b/lib/master.c index 9d16801..1fe17bb 100644 --- a/lib/master.c +++ b/lib/master.c @@ -514,8 +514,6 @@ void master_source_current_wait(struct m { int status; - debug(LOGOPT_ANY, "locking"); - status = pthread_mutex_lock(&entry->current_mutex); if (status) { error(LOGOPT_ANY, "entry current source lock failed"); @@ -552,8 +550,6 @@ void master_source_current_signal(struct fatal(status); } - debug(LOGOPT_ANY, "unlocking"); - return; } diff --git a/modules/parse_sun.c b/modules/parse_sun.c index 00b0bd3..1b396a0 100644 --- a/modules/parse_sun.c +++ b/modules/parse_sun.c @@ -637,7 +637,7 @@ add_offset_entry(struct autofs_point *ap p_len = strlen(path); /* Trailing '/' causes us pain */ - if (path[p_len - 1] == '/') + if (p_len > 1 && path[p_len - 1] == '/') p_len--; m_key_len = m_root_len + p_len; if (m_key_len > PATH_MAX) { @@ -677,7 +677,7 @@ add_offset_entry(struct autofs_point *ap "added multi-mount offset %s -> %s", path, m_mapent); else warn(ap->logopt, MODPREFIX - "syntax error or dupliate offset %s -> %s", path, loc); + "syntax error or duplicate offset %s -> %s", path, loc); return ret; } @@ -800,7 +800,6 @@ static int parse_mapent(const char *ent, char *tmp, *newopt = NULL; p = parse_options(p, &newopt, logopt); - tmp = concat_options(myoptions, newopt); if (!tmp) { char *estr; @@ -816,6 +815,8 @@ static int parse_mapent(const char *ent, } while (*p == '-'); } + debug(logopt, MODPREFIX "gathered options: %s", myoptions); + /* Location can't begin with a '/' */ if (*p == '/') { warn(logopt, MODPREFIX "error location begins with \"/\""); @@ -836,7 +837,7 @@ static int parse_mapent(const char *ent, } if (!validate_location(loc)) { - error(logopt, MODPREFIX "invalid location"); + warn(logopt, MODPREFIX "invalid location"); free(myoptions); free(loc); return 0; @@ -1151,6 +1152,7 @@ int parse_mount(struct autofs_point *ap, } while (*p == '/'); cache_readlock(mc); + me = cache_lookup_distinct(mc, name); if (!me) { error(ap->logopt, MODPREFIX @@ -1171,7 +1173,7 @@ int parse_mount(struct autofs_point *ap, rv = parse_mapent(ro->mapent, options, &myoptions, &loc, ap->logopt); if (!rv) { - error(ap->logopt, + warn(ap->logopt, MODPREFIX "failed to mount root offset"); cache_multi_lock(mc); cache_delete_offset_list(mc, name); @@ -1188,7 +1190,7 @@ int parse_mount(struct autofs_point *ap, free(loc); if (rv < 0) { - error(ap->logopt, + warn(ap->logopt, MODPREFIX "mount multi-mount root %s failed", name); cache_multi_lock(mc); @@ -1201,7 +1203,7 @@ int parse_mount(struct autofs_point *ap, } if (!mount_multi_triggers(ap, m_root, me, "/")) { - error(ap->logopt, + warn(ap->logopt, MODPREFIX "failed to mount offset triggers"); free(options); return 1;