summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Mitchell <jumitche@redhat.com>2017-10-05 10:40:51 -0400
committerSteve Dickson <steved@redhat.com>2017-10-05 10:50:34 -0400
commit8110103404b35d9e86057ef0764f8aa87585f455 (patch)
treeefa85e6069e1f8739de23587c2d1dc2e027682f2
parent9176fa77355d93d1b520b95a1e1940f1c3e74d57 (diff)
downloadnfs-utils-8110103404b35d9e86057ef0764f8aa87585f455.tar.gz
nfs-utils-8110103404b35d9e86057ef0764f8aa87585f455.tar.xz
nfs-utils-8110103404b35d9e86057ef0764f8aa87585f455.zip
mount.nfs: merge in vers= and nfsvers= options
When using mount.nfs if an nfsvers= option is set in a config file, and a vers= option is given on the commandline, then they are not always correctly combined and this can result in both being present in the resulting mount call. Signed-off-by: Justin Mitchell <jumitche@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--utils/mount/configfile.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/utils/mount/configfile.c b/utils/mount/configfile.c
index e4b39ef..64688bf 100644
--- a/utils/mount/configfile.c
+++ b/utils/mount/configfile.c
@@ -66,6 +66,7 @@ struct mnt_alias {
{"background", "bg", MNT_NOARG},
{"foreground", "fg", MNT_NOARG},
{"sloppy", "sloppy", MNT_NOARG},
+ {"nfsvers", "vers", MNT_UNSET},
};
int mnt_alias_sz = (sizeof(mnt_alias_tab)/sizeof(mnt_alias_tab[0]));
@@ -292,20 +293,21 @@ conf_parse_mntopts(char *section, char *arg, char *opts)
list = conf_get_tag_list(section, arg);
TAILQ_FOREACH(node, &list->fields, link) {
+ /* check first if this is an alias for another option */
+ field = mountopts_alias(node->field, &argtype);
/*
* Do not overwrite options if already exists
*/
- snprintf(buf, BUFSIZ, "%s=", node->field);
+ snprintf(buf, BUFSIZ, "%s=", field);
if (opts && strcasestr(opts, buf) != NULL)
continue;
- if (lookup_entry(node->field) != NULL)
+ if (lookup_entry(field) != NULL)
continue;
buf[0] = '\0';
value = conf_get_section(section, arg, node->field);
if (value == NULL)
continue;
- field = mountopts_alias(node->field, &argtype);
if (strcasecmp(value, "false") == 0) {
if (argtype != MNT_NOARG)
snprintf(buf, BUFSIZ, "no%s", field);