diff options
author | Justin Mitchell <jumitche@redhat.com> | 2017-10-05 10:40:51 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2017-10-05 10:50:34 -0400 |
commit | 8110103404b35d9e86057ef0764f8aa87585f455 (patch) | |
tree | efa85e6069e1f8739de23587c2d1dc2e027682f2 | |
parent | 9176fa77355d93d1b520b95a1e1940f1c3e74d57 (diff) | |
download | nfs-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.c | 8 |
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); |