|
|
306fa1 |
autofs-5.1.2 - add master read wait option
|
|
|
306fa1 |
|
|
|
306fa1 |
From: Ian Kent <raven@themaw.net>
|
|
|
306fa1 |
|
|
|
306fa1 |
Add command line and configuration options to set the amount of time to
|
|
|
306fa1 |
wait for the master map to become available at program start.
|
|
|
306fa1 |
|
|
|
306fa1 |
Signed-off-by: Ian Kent <raven@themaw.net>
|
|
|
306fa1 |
---
|
|
|
306fa1 |
CHANGELOG | 1 +
|
|
|
306fa1 |
daemon/automount.c | 11 +++++++++--
|
|
|
306fa1 |
include/defaults.h | 2 ++
|
|
|
306fa1 |
lib/defaults.c | 17 +++++++++++++++++
|
|
|
306fa1 |
man/autofs.conf.5.in | 5 +++++
|
|
|
306fa1 |
man/automount.8 | 4 ++++
|
|
|
306fa1 |
redhat/autofs.conf.default.in | 7 +++++++
|
|
|
306fa1 |
samples/autofs.conf.default.in | 7 +++++++
|
|
|
306fa1 |
8 files changed, 52 insertions(+), 2 deletions(-)
|
|
|
306fa1 |
|
|
|
306fa1 |
--- autofs-5.0.7.orig/CHANGELOG
|
|
|
306fa1 |
+++ autofs-5.0.7/CHANGELOG
|
|
|
306fa1 |
@@ -207,6 +207,7 @@
|
|
|
306fa1 |
- fix use-after-free in st_queue_handler().
|
|
|
306fa1 |
- add config option to supress not found log message.
|
|
|
306fa1 |
- wait for master map available at start.
|
|
|
306fa1 |
+- add master read wait option.
|
|
|
306fa1 |
|
|
|
306fa1 |
25/07/2012 autofs-5.0.7
|
|
|
306fa1 |
=======================
|
|
|
306fa1 |
--- autofs-5.0.7.orig/daemon/automount.c
|
|
|
306fa1 |
+++ autofs-5.0.7/daemon/automount.c
|
|
|
306fa1 |
@@ -2082,10 +2082,11 @@ int main(int argc, char *argv[])
|
|
|
306fa1 |
unsigned ghost, logging, daemon_check;
|
|
|
306fa1 |
unsigned dumpmaps, foreground, have_global_options;
|
|
|
306fa1 |
unsigned master_read;
|
|
|
306fa1 |
+ int master_wait;
|
|
|
306fa1 |
time_t timeout;
|
|
|
306fa1 |
time_t age = time(NULL);
|
|
|
306fa1 |
struct rlimit rlim;
|
|
|
306fa1 |
- const char *options = "+hp:t:vmdD:fVrO:l:n:CF";
|
|
|
306fa1 |
+ const char *options = "+hp:t:vmdD:fVrO:l:n:CFM";
|
|
|
306fa1 |
static const struct option long_options[] = {
|
|
|
306fa1 |
{"help", 0, 0, 'h'},
|
|
|
306fa1 |
{"pid-file", 1, 0, 'p'},
|
|
|
306fa1 |
@@ -2102,6 +2103,7 @@ int main(int argc, char *argv[])
|
|
|
306fa1 |
{"set-log-priority", 1, 0, 'l'},
|
|
|
306fa1 |
{"dont-check-daemon", 0, 0, 'C'},
|
|
|
306fa1 |
{"force", 0, 0, 'F'},
|
|
|
306fa1 |
+ {"master-wait", 1, 0, 'M'},
|
|
|
306fa1 |
{0, 0, 0, 0}
|
|
|
306fa1 |
};
|
|
|
306fa1 |
|
|
|
306fa1 |
@@ -2122,6 +2124,7 @@ int main(int argc, char *argv[])
|
|
|
306fa1 |
nfs_mount_uses_string_options = check_nfs_mount_version(&vers, &check);
|
|
|
306fa1 |
|
|
|
306fa1 |
kpkt_len = get_kpkt_len();
|
|
|
306fa1 |
+ master_wait = defaults_get_master_wait();
|
|
|
306fa1 |
timeout = defaults_get_timeout();
|
|
|
306fa1 |
ghost = defaults_get_browse_mode();
|
|
|
306fa1 |
logging = defaults_get_logging();
|
|
|
306fa1 |
@@ -2181,6 +2184,10 @@ int main(int argc, char *argv[])
|
|
|
306fa1 |
dumpmaps = 1;
|
|
|
306fa1 |
break;
|
|
|
306fa1 |
|
|
|
306fa1 |
+ case 'M':
|
|
|
306fa1 |
+ master_wait = getnumopt(optarg, opt);
|
|
|
306fa1 |
+ break;
|
|
|
306fa1 |
+
|
|
|
306fa1 |
case 'O':
|
|
|
306fa1 |
if (!have_global_options) {
|
|
|
306fa1 |
global_options = strdup(optarg);
|
|
|
306fa1 |
@@ -2502,7 +2509,7 @@ int main(int argc, char *argv[])
|
|
|
306fa1 |
* a signal is received, in which case exit returning an
|
|
|
306fa1 |
* error.
|
|
|
306fa1 |
*/
|
|
|
306fa1 |
- if (!do_master_read_master(master_list, -1)) {
|
|
|
306fa1 |
+ if (!do_master_read_master(master_list, master_wait)) {
|
|
|
306fa1 |
logerr("%s: failed to read master map!", program);
|
|
|
306fa1 |
master_kill(master_list);
|
|
|
306fa1 |
release_flag_file();
|
|
|
306fa1 |
--- autofs-5.0.7.orig/include/defaults.h
|
|
|
306fa1 |
+++ autofs-5.0.7/include/defaults.h
|
|
|
306fa1 |
@@ -25,6 +25,7 @@
|
|
|
306fa1 |
#define DEFAULT_MASTER_MAP_NAME "auto.master"
|
|
|
306fa1 |
|
|
|
306fa1 |
#define DEFAULT_TIMEOUT "600"
|
|
|
306fa1 |
+#define DEFAULT_MASTER_WAIT "-1"
|
|
|
306fa1 |
#define DEFAULT_NEGATIVE_TIMEOUT "60"
|
|
|
306fa1 |
#define DEFAULT_MOUNT_WAIT "-1"
|
|
|
306fa1 |
#define DEFAULT_UMOUNT_WAIT "12"
|
|
|
306fa1 |
@@ -152,6 +153,7 @@ void defaults_conf_release(void);
|
|
|
306fa1 |
const char *defaults_get_master_map(void);
|
|
|
306fa1 |
int defaults_master_set(void);
|
|
|
306fa1 |
unsigned int defaults_get_timeout(void);
|
|
|
306fa1 |
+int defaults_get_master_wait(void);
|
|
|
306fa1 |
unsigned int defaults_get_negative_timeout(void);
|
|
|
306fa1 |
unsigned int defaults_get_browse_mode(void);
|
|
|
306fa1 |
unsigned int defaults_get_logging(void);
|
|
|
306fa1 |
--- autofs-5.0.7.orig/lib/defaults.c
|
|
|
306fa1 |
+++ autofs-5.0.7/lib/defaults.c
|
|
|
306fa1 |
@@ -47,6 +47,7 @@
|
|
|
306fa1 |
#define NAME_MASTER_MAP "master_map_name"
|
|
|
306fa1 |
|
|
|
306fa1 |
#define NAME_TIMEOUT "timeout"
|
|
|
306fa1 |
+#define NAME_MASTER_WAIT "master_wait"
|
|
|
306fa1 |
#define NAME_NEGATIVE_TIMEOUT "negative_timeout"
|
|
|
306fa1 |
#define NAME_BROWSE_MODE "browse_mode"
|
|
|
306fa1 |
#define NAME_LOGGING "logging"
|
|
|
306fa1 |
@@ -287,6 +288,11 @@ static int conf_load_autofs_defaults(voi
|
|
|
306fa1 |
if (ret == CFG_FAIL)
|
|
|
306fa1 |
goto error;
|
|
|
306fa1 |
|
|
|
306fa1 |
+ ret = conf_update(sec, NAME_MASTER_WAIT,
|
|
|
306fa1 |
+ DEFAULT_MASTER_WAIT, CONF_ENV);
|
|
|
306fa1 |
+ if (ret == CFG_FAIL)
|
|
|
306fa1 |
+ goto error;
|
|
|
306fa1 |
+
|
|
|
306fa1 |
ret = conf_update(sec, NAME_NEGATIVE_TIMEOUT,
|
|
|
306fa1 |
DEFAULT_NEGATIVE_TIMEOUT, CONF_ENV);
|
|
|
306fa1 |
if (ret == CFG_FAIL)
|
|
|
306fa1 |
@@ -1568,6 +1574,17 @@ unsigned int defaults_get_timeout(void)
|
|
|
306fa1 |
return (unsigned int) timeout;
|
|
|
306fa1 |
}
|
|
|
306fa1 |
|
|
|
306fa1 |
+int defaults_get_master_wait(void)
|
|
|
306fa1 |
+{
|
|
|
306fa1 |
+ long wait;
|
|
|
306fa1 |
+
|
|
|
306fa1 |
+ wait = conf_get_number(autofs_gbl_sec, NAME_MASTER_WAIT);
|
|
|
306fa1 |
+ if (wait < 0)
|
|
|
306fa1 |
+ wait = atol(DEFAULT_MASTER_WAIT);
|
|
|
306fa1 |
+
|
|
|
306fa1 |
+ return (int) wait;
|
|
|
306fa1 |
+}
|
|
|
306fa1 |
+
|
|
|
306fa1 |
unsigned int defaults_get_negative_timeout(void)
|
|
|
306fa1 |
{
|
|
|
306fa1 |
long n_timeout;
|
|
|
306fa1 |
--- autofs-5.0.7.orig/man/autofs.conf.5.in
|
|
|
306fa1 |
+++ autofs-5.0.7/man/autofs.conf.5.in
|
|
|
306fa1 |
@@ -30,6 +30,11 @@ default is 10 minutes, but the default i
|
|
|
306fa1 |
overrides this and sets the timeout to 5 minutes to be consistent
|
|
|
306fa1 |
with earlier autofs releases.
|
|
|
306fa1 |
.TP
|
|
|
306fa1 |
+.B master_wait
|
|
|
306fa1 |
+sets the default maximum time to wait for the master map to become
|
|
|
306fa1 |
+available if it cannot be read at program start (program default -1,
|
|
|
306fa1 |
+wait forever).
|
|
|
306fa1 |
+.TP
|
|
|
306fa1 |
.B negative_timeout
|
|
|
306fa1 |
.br
|
|
|
306fa1 |
Set the default timeout for caching failed key lookups (program default
|
|
|
306fa1 |
--- autofs-5.0.7.orig/man/automount.8
|
|
|
306fa1 |
+++ autofs-5.0.7/man/automount.8
|
|
|
306fa1 |
@@ -37,6 +37,10 @@ The internal program default is 10 minut
|
|
|
306fa1 |
installed configuration overrides this and sets the timeout
|
|
|
306fa1 |
to 5 minutes to be consistent with earlier autofs releases.
|
|
|
306fa1 |
.TP
|
|
|
306fa1 |
+.I "\-M <seconds>, \-\-master-wait <seconds>"
|
|
|
306fa1 |
+Set the maximum time to wait for the master map to become available
|
|
|
306fa1 |
+if it cannot be read at program start.
|
|
|
306fa1 |
+.TP
|
|
|
306fa1 |
.I "\-n <seconds>, \-\-negative\-timeout <seconds>"
|
|
|
306fa1 |
Set the default timeout for caching failed key lookups. The default is 60 seconds.
|
|
|
306fa1 |
.TP
|
|
|
306fa1 |
--- autofs-5.0.7.orig/redhat/autofs.conf.default.in
|
|
|
306fa1 |
+++ autofs-5.0.7/redhat/autofs.conf.default.in
|
|
|
306fa1 |
@@ -14,6 +14,13 @@
|
|
|
306fa1 |
#
|
|
|
306fa1 |
timeout = 300
|
|
|
306fa1 |
#
|
|
|
306fa1 |
+# master_wait - set the default maximum time to wait for the
|
|
|
306fa1 |
+# master map to become available if it cannot
|
|
|
306fa1 |
+# be read at program start (default -1, wait
|
|
|
306fa1 |
+# forever).
|
|
|
306fa1 |
+#
|
|
|
306fa1 |
+#master_wait = -1
|
|
|
306fa1 |
+#
|
|
|
306fa1 |
# negative_timeout - set the default negative timeout for
|
|
|
306fa1 |
# failed mount attempts (default 60).
|
|
|
306fa1 |
#
|
|
|
306fa1 |
--- autofs-5.0.7.orig/samples/autofs.conf.default.in
|
|
|
306fa1 |
+++ autofs-5.0.7/samples/autofs.conf.default.in
|
|
|
306fa1 |
@@ -14,6 +14,13 @@
|
|
|
306fa1 |
#
|
|
|
306fa1 |
timeout = 300
|
|
|
306fa1 |
#
|
|
|
306fa1 |
+# master_wait - set the default maximum time to wait for the
|
|
|
306fa1 |
+# master map to become available if it cannot
|
|
|
306fa1 |
+# be read at program start (default -1, wait
|
|
|
306fa1 |
+# forever).
|
|
|
306fa1 |
+#
|
|
|
306fa1 |
+# master_wait = -1
|
|
|
306fa1 |
+#
|
|
|
306fa1 |
# negative_timeout - set the default negative timeout for
|
|
|
306fa1 |
# failed mount attempts (default 60).
|
|
|
306fa1 |
#
|