|
Ian Kent |
3685ec |
autofs-5.0.3 - add configuration paramter UMOUNT_WAIT
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
From: Ian Kent <raven@themaw.net>
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
To try and prevent expire delays when trying to umount from a server
|
|
Ian Kent |
3685ec |
that is not available we limit the time that we wait for a response
|
|
Ian Kent |
3685ec |
from the spawned umount process before sending it a SIGTERM signal.
|
|
Ian Kent |
3685ec |
This patch adds a configuration parameter to allow this wait to be
|
|
Ian Kent |
3685ec |
changed if needed.
|
|
Ian Kent |
3685ec |
---
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
daemon/spawn.c | 2 +-
|
|
Ian Kent |
3685ec |
include/defaults.h | 2 ++
|
|
Ian Kent |
3685ec |
lib/defaults.c | 13 +++++++++++++
|
|
Ian Kent |
3685ec |
man/auto.master.5.in | 6 ++++++
|
|
Ian Kent |
3685ec |
redhat/autofs.sysconfig.in | 4 ++++
|
|
Ian Kent |
3685ec |
samples/autofs.conf.default.in | 4 ++++
|
|
Ian Kent |
3685ec |
6 files changed, 30 insertions(+), 1 deletions(-)
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
diff --git a/daemon/spawn.c b/daemon/spawn.c
|
|
Ian Kent |
3685ec |
index e3c355e..6b26c41 100644
|
|
Ian Kent |
3685ec |
--- a/daemon/spawn.c
|
|
Ian Kent |
3685ec |
+++ b/daemon/spawn.c
|
|
Ian Kent |
3685ec |
@@ -502,7 +502,7 @@ int spawn_umount(unsigned logopt, ...)
|
|
Ian Kent |
3685ec |
unsigned int options;
|
|
Ian Kent |
3685ec |
unsigned int retries = MTAB_LOCK_RETRIES;
|
|
Ian Kent |
3685ec |
int ret, printed = 0;
|
|
Ian Kent |
3685ec |
- unsigned int wait = 12;
|
|
Ian Kent |
3685ec |
+ unsigned int wait = defaults_get_umount_wait();
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
#ifdef ENABLE_MOUNT_LOCKING
|
|
Ian Kent |
3685ec |
options = SPAWN_OPT_LOCK;
|
|
Ian Kent |
3685ec |
diff --git a/include/defaults.h b/include/defaults.h
|
|
Ian Kent |
3685ec |
index 6e4f52a..12534ec 100644
|
|
Ian Kent |
3685ec |
--- a/include/defaults.h
|
|
Ian Kent |
3685ec |
+++ b/include/defaults.h
|
|
Ian Kent |
3685ec |
@@ -24,6 +24,7 @@
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
#define DEFAULT_TIMEOUT 600
|
|
Ian Kent |
3685ec |
#define DEFAULT_NEGATIVE_TIMEOUT 60
|
|
Ian Kent |
3685ec |
+#define DEFAULT_UMOUNT_WAIT 12
|
|
Ian Kent |
3685ec |
#define DEFAULT_BROWSE_MODE 1
|
|
Ian Kent |
3685ec |
#define DEFAULT_LOGGING 0
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
@@ -59,6 +60,7 @@ struct ldap_schema *defaults_get_schema(void);
|
|
Ian Kent |
3685ec |
struct ldap_searchdn *defaults_get_searchdns(void);
|
|
Ian Kent |
3685ec |
void defaults_free_searchdns(struct ldap_searchdn *);
|
|
Ian Kent |
3685ec |
unsigned int defaults_get_append_options(void);
|
|
Ian Kent |
3685ec |
+unsigned int defaults_get_umount_wait(void);
|
|
Ian Kent |
3685ec |
const char *defaults_get_auth_conf_file(void);
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
#endif
|
|
Ian Kent |
3685ec |
diff --git a/lib/defaults.c b/lib/defaults.c
|
|
Ian Kent |
3685ec |
index 8149549..21d76d2 100644
|
|
Ian Kent |
3685ec |
--- a/lib/defaults.c
|
|
Ian Kent |
3685ec |
+++ b/lib/defaults.c
|
|
Ian Kent |
3685ec |
@@ -45,6 +45,7 @@
|
|
Ian Kent |
3685ec |
#define ENV_NAME_VALUE_ATTR "VALUE_ATTRIBUTE"
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
#define ENV_APPEND_OPTIONS "APPEND_OPTIONS"
|
|
Ian Kent |
3685ec |
+#define ENV_UMOUNT_WAIT "UMOUNT_WAIT"
|
|
Ian Kent |
3685ec |
#define ENV_AUTH_CONF_FILE "AUTH_CONF_FILE"
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
static const char *default_master_map_name = DEFAULT_MASTER_MAP_NAME;
|
|
Ian Kent |
3685ec |
@@ -320,6 +321,7 @@ unsigned int defaults_read_config(unsigned int to_syslog)
|
|
Ian Kent |
3685ec |
check_set_config_value(key, ENV_NAME_ENTRY_ATTR, value, to_syslog) ||
|
|
Ian Kent |
3685ec |
check_set_config_value(key, ENV_NAME_VALUE_ATTR, value, to_syslog) ||
|
|
Ian Kent |
3685ec |
check_set_config_value(key, ENV_APPEND_OPTIONS, value, to_syslog) ||
|
|
Ian Kent |
3685ec |
+ check_set_config_value(key, ENV_UMOUNT_WAIT, value, to_syslog) ||
|
|
Ian Kent |
3685ec |
check_set_config_value(key, ENV_AUTH_CONF_FILE, value, to_syslog))
|
|
Ian Kent |
3685ec |
;
|
|
Ian Kent |
3685ec |
}
|
|
Ian Kent |
3685ec |
@@ -647,6 +649,17 @@ unsigned int defaults_get_append_options(void)
|
|
Ian Kent |
3685ec |
return res;
|
|
Ian Kent |
3685ec |
}
|
|
Ian Kent |
3685ec |
|
|
Ian Kent |
3685ec |
+unsigned int defaults_get_umount_wait(void)
|
|
Ian Kent |
3685ec |
+{
|
|
Ian Kent |
3685ec |
+ long wait;
|
|
Ian Kent |
3685ec |
+
|
|
Ian Kent |
3685ec |
+ wait = get_env_number(ENV_UMOUNT_WAIT);
|
|
Ian Kent |
3685ec |
+ if (wait < 0)
|
|
Ian Kent |
3685ec |
+ wait = DEFAULT_UMOUNT_WAIT;
|
|
Ian Kent |
3685ec |
+
|
|
Ian Kent |
3685ec |
+ return (unsigned int) wait;
|
|
Ian Kent |
3685ec |
+}
|
|
Ian Kent |
3685ec |
+
|
|
Ian Kent |
3685ec |
const char *defaults_get_auth_conf_file(void)
|
|
Ian Kent |
3685ec |
{
|
|
Ian Kent |
3685ec |
char *cf;
|
|
Ian Kent |
3685ec |
diff --git a/man/auto.master.5.in b/man/auto.master.5.in
|
|
Ian Kent |
3685ec |
index 49a711c..9cc5f02 100644
|
|
Ian Kent |
3685ec |
--- a/man/auto.master.5.in
|
|
Ian Kent |
3685ec |
+++ b/man/auto.master.5.in
|
|
Ian Kent |
3685ec |
@@ -174,6 +174,12 @@ Set the default timeout for caching failed key lookups (program default
|
|
Ian Kent |
3685ec |
60). If the equivalent command line option is given it will override this
|
|
Ian Kent |
3685ec |
setting.
|
|
Ian Kent |
3685ec |
.TP
|
|
Ian Kent |
3685ec |
+.B UMOUNT_WAIT
|
|
Ian Kent |
3685ec |
+Set the default time to wait for a response from a spawned umount(8)
|
|
Ian Kent |
3685ec |
+before sending it a SIGTERM. Note that we still need to wait for the
|
|
Ian Kent |
3685ec |
+RPC layer to timeout before the sub-process exits so this isn't ideal
|
|
Ian Kent |
3685ec |
+but it is the best we can do.
|
|
Ian Kent |
3685ec |
+.TP
|
|
Ian Kent |
3685ec |
.B BROWSE_MODE
|
|
Ian Kent |
3685ec |
Maps are browsable by default (program default "yes").
|
|
Ian Kent |
3685ec |
.TP
|
|
Ian Kent |
3685ec |
diff --git a/redhat/autofs.sysconfig.in b/redhat/autofs.sysconfig.in
|
|
Ian Kent |
3685ec |
index 636763a..ce64feb 100644
|
|
Ian Kent |
3685ec |
--- a/redhat/autofs.sysconfig.in
|
|
Ian Kent |
3685ec |
+++ b/redhat/autofs.sysconfig.in
|
|
Ian Kent |
3685ec |
@@ -14,6 +14,10 @@ TIMEOUT=300
|
|
Ian Kent |
3685ec |
#
|
|
Ian Kent |
3685ec |
#NEGATIVE_TIMEOUT=60
|
|
Ian Kent |
3685ec |
#
|
|
Ian Kent |
3685ec |
+# UMOUNT_WAIT - time to wait for a response from umount(8).
|
|
Ian Kent |
3685ec |
+#
|
|
Ian Kent |
3685ec |
+#UMOUNT_WAIT=12
|
|
Ian Kent |
3685ec |
+#
|
|
Ian Kent |
3685ec |
# BROWSE_MODE - maps are browsable by default.
|
|
Ian Kent |
3685ec |
#
|
|
Ian Kent |
3685ec |
BROWSE_MODE="no"
|
|
Ian Kent |
3685ec |
diff --git a/samples/autofs.conf.default.in b/samples/autofs.conf.default.in
|
|
Ian Kent |
3685ec |
index 086ba4f..0231e1d 100644
|
|
Ian Kent |
3685ec |
--- a/samples/autofs.conf.default.in
|
|
Ian Kent |
3685ec |
+++ b/samples/autofs.conf.default.in
|
|
Ian Kent |
3685ec |
@@ -14,6 +14,10 @@ TIMEOUT=300
|
|
Ian Kent |
3685ec |
#
|
|
Ian Kent |
3685ec |
#NEGATIVE_TIMEOUT=60
|
|
Ian Kent |
3685ec |
#
|
|
Ian Kent |
3685ec |
+# UMOUNT_WAIT - time to wait for a response from umount(8).
|
|
Ian Kent |
3685ec |
+#
|
|
Ian Kent |
3685ec |
+#UMOUNT_WAIT=12
|
|
Ian Kent |
3685ec |
+#
|
|
Ian Kent |
3685ec |
# BROWSE_MODE - maps are browsable by default.
|
|
Ian Kent |
3685ec |
#
|
|
Ian Kent |
3685ec |
BROWSE_MODE="no"
|