54 lines
1.4 KiB
Diff
54 lines
1.4 KiB
Diff
|
commit d63f9e0ccb836d592593a9816ccc00a51c903328
|
||
|
Author: Steve Dickson <steved@redhat.com>
|
||
|
Date: Wed Jan 20 15:05:46 2010 -0500
|
||
|
|
||
|
mount.nfs: Configuration file parser ignoring options
|
||
|
|
||
|
When the protocol version is set on the command line,
|
||
|
none of the variables set in the configuration file
|
||
|
are passed down to the kernel due to a bug in the
|
||
|
parsing routine.
|
||
|
|
||
|
Tested-by: Jeff Layton <jlayton@redhat.com>
|
||
|
Signed-off-by: Steve Dickson <steved@redhat.com>
|
||
|
|
||
|
diff --git a/utils/mount/configfile.c b/utils/mount/configfile.c
|
||
|
index 28b722c..1dd4159 100644
|
||
|
--- a/utils/mount/configfile.c
|
||
|
+++ b/utils/mount/configfile.c
|
||
|
@@ -194,13 +194,29 @@ void free_all(void)
|
||
|
static char *versions[] = {"v2", "v3", "v4", "vers", "nfsvers", NULL};
|
||
|
int inline check_vers(char *mopt, char *field)
|
||
|
{
|
||
|
- int i;
|
||
|
+ int i, found=0;
|
||
|
|
||
|
- if (strncmp("mountvers", field, strlen("mountvers")) != 0) {
|
||
|
- for (i=0; versions[i]; i++)
|
||
|
- if (strcasestr(mopt, versions[i]) != NULL)
|
||
|
- return 1;
|
||
|
+ /*
|
||
|
+ * First check to see if the config setting is one
|
||
|
+ * of the many version settings
|
||
|
+ */
|
||
|
+ for (i=0; versions[i]; i++) {
|
||
|
+ if (strcasestr(field, versions[i]) != NULL) {
|
||
|
+ found++;
|
||
|
+ break;
|
||
|
+ }
|
||
|
}
|
||
|
+ if (!found)
|
||
|
+ return 0;
|
||
|
+ /*
|
||
|
+ * It appears the version is being set, now see
|
||
|
+ * if the version appears on the command
|
||
|
+ */
|
||
|
+ for (i=0; versions[i]; i++) {
|
||
|
+ if (strcasestr(mopt, versions[i]) != NULL)
|
||
|
+ return 1;
|
||
|
+ }
|
||
|
+
|
||
|
return 0;
|
||
|
}
|
||
|
|