All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Dickson <SteveD@redhat.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Linux NFS Mailing list <linux-nfs@vger.kernel.org>,
	Linux NFSv4 mailing list <nfsv4@linux-nfs.org>
Subject: Re: [Patch 7/10] NFS Mount Configuration File (Vers 3)
Date: Fri, 07 Aug 2009 14:37:22 -0400	[thread overview]
Message-ID: <4A7C7462.1090605@RedHat.com> (raw)
In-Reply-To: <E3DFEA95-A38E-446C-B9AB-3BA7E9837E94@oracle.com>

On 08/06/2009 04:35 PM, Chuck Lever wrote:
> 
> On Aug 6, 2009, at 2:46 PM, Steve Dickson wrote:
>> commit eab66bd02db90965d1cbf4e100a274a4e3e6e29e
>> Author: Steve Dickson <steved@redhat.com>
>> Date:   Sun Aug 2 12:37:19 2009 -0400
>>
>>    Added hooks to the mount command that allow
>>    mount options to be set in a configuration file
>>
>>    Signed-off-by: Steve Dickson <steved@redhat.com>
>>
>> diff --git a/utils/mount/mount.c b/utils/mount/mount.c
>> index a668cd9..30d087e 100644
>> --- a/utils/mount/mount.c
>> +++ b/utils/mount/mount.c
>> @@ -47,6 +47,11 @@
>> #include "stropts.h"
>> #include "version.h"
>>
>> +#ifdef MOUNT_CONFIG
>> +#include "conffile.h"
>> +extern char *conf_get_mntopts(char *, char *, char *);
> 
> Can this forward declaration be added to conffile.h ?
> 
>> +#endif
>> +
>> char *progname;
>> int nfs_mount_data_version;
>> int nomtab;
>> @@ -474,6 +479,13 @@ int main(int argc, char *argv[])
>>     spec = argv[1];
>>     mount_point = argv[2];
>>
>> +#ifdef MOUNT_CONFIG
>> +    /*
>> +     * Read the the default mount options
>> +     */
>> +    conf_init();
>> +#endif
> 
> It would be cleaner if the #ifdefs were moved to conf_init() (and above,
> for the #include, and below, into conf_get_mntopts()).  If MOUNT_CONFIG
> isn't set, then configfile.o would just contain stubs, but it would then
> always be built.
> 
> Otherwise, we end up with each new feature adding #ifdefs in the
> mainline code, and eventually it becomes unreadable.
> 
I agree... there is the update to this patch:

commit 5225a4e8fbedc5c4f888691855dd3fe2e3eff9ad
Author: Steve Dickson <steved@redhat.com>
Date:   Fri Aug 7 14:29:07 2009 -0400

    Added hooks to the mount command that allow
    mount options to be set in a configuration file
    
    Signed-off-by: Steve Dickson <steved@redhat.com>

diff --git a/utils/mount/Makefile.am b/utils/mount/Makefile.am
index a1b56ca..db7778f 100644
--- a/utils/mount/Makefile.am
+++ b/utils/mount/Makefile.am
@@ -15,7 +15,8 @@ mount_nfs_SOURCES = mount.c error.c network.c fstab.c token.c \
 		    nfsumount.c \
 		    mount_constants.h error.h network.h fstab.h token.h \
 		    parse_opt.h parse_dev.h \
-		    nfs4_mount.h nfs_mount4.h stropts.h version.h
+		    nfs4_mount.h nfs_mount4.h stropts.h version.h \
+			mount_config.h
 
 if MOUNT_CONFIG
 mount_nfs_SOURCES += configfile.c
diff --git a/utils/mount/mount.c b/utils/mount/mount.c
index a668cd9..909fedf 100644
--- a/utils/mount/mount.c
+++ b/utils/mount/mount.c
@@ -37,6 +37,7 @@
 #include "xcommon.h"
 #include "nls.h"
 #include "mount_constants.h"
+#include "mount_config.h"
 #include "nfs_paths.h"
 #include "nfs_mntent.h"
 
@@ -474,6 +475,8 @@ int main(int argc, char *argv[])
 	spec = argv[1];
 	mount_point = argv[2];
 
+	mount_config_init();
+
 	argv[2] = argv[0]; /* so that getopt error messages are correct */
 	while ((c = getopt_long(argc - 2, argv + 2, "rvVwfno:hs",
 				longopts, NULL)) != -1) {
@@ -559,6 +562,10 @@ int main(int argc, char *argv[])
 		mnt_err = EX_USAGE;
 		goto out;
 	}
+	/*
+	 * Concatenate mount options from the configuration file
+	 */
+	mount_opts = mount_config_opts(spec, mount_point, mount_opts);
 
 	parse_opts(mount_opts, &flags, &extra_opts);
 
diff --git a/utils/mount/mount_config.h b/utils/mount/mount_config.h
new file mode 100644
index 0000000..2af9f9d
--- /dev/null
+++ b/utils/mount/mount_config.h
@@ -0,0 +1,47 @@
+#ifndef _LINUX_MOUNT__CONFIG_H
+#define _LINUX_MOUNT_CONFIG__H
+/*
+ * mount_config.h -- mount configuration file routines 
+ * Copyright (C) 2008 Red Hat, Inc <nfs@redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+inline void mount_config_init(void);
+
+#ifdef MOUNT_CONFIG
+#include "conffile.h"
+extern char *conf_get_mntopts(char *, char *, char *);
+
+inline void mount_config_init()
+{
+	/*
+	 * Read the the default mount options
+	 */
+	conf_init();
+}
+inline char *mount_config_opts(char *spec, 
+		char *mount_point, char *mount_opts)
+{
+	return conf_get_mntopts(spec, mount_point, mount_opts);
+}
+#else /* MOUNT_CONFIG */
+
+inline void mount_config_init() { }
+
+inline char *mount_config_opts(char *spec, 
+		char *mount_point, char *mount_opts)
+{
+	return mount_opts;
+}
+#endif /* MOUNT_CONFIG */
+#endif

  parent reply	other threads:[~2009-08-07 18:37 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-06 18:38 [Patch 0/10] NFS Mount Configuration File (Vers 3) Steve Dickson
2009-08-06 18:40 ` [Patch 1/10] " Steve Dickson
2009-08-07  8:06   ` Benny Halevy
2009-08-07 17:09     ` Steve Dickson
2009-08-06 18:42 ` [Patch 3/10] " Steve Dickson
2009-08-07  7:38   ` Benny Halevy
2009-08-07 17:13     ` Steve Dickson
2009-08-07 18:35     ` Steve Dickson
2009-08-08 20:54       ` Benny Halevy
2009-08-06 18:43 ` [Patch 4/10] " Steve Dickson
     [not found] ` <4A7B2324.9090406-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2009-08-06 18:41   ` [Patch 2/10] " Steve Dickson
     [not found]     ` <4A7B23D2.6080900-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2009-08-07  8:07       ` Benny Halevy
2009-08-07 17:11         ` Steve Dickson
     [not found]           ` <4A7C6032.4060301-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2009-08-08 20:52             ` Benny Halevy
2009-08-06 18:44   ` [Patch 5/10] " Steve Dickson
2009-08-06 18:47   ` [Patch 8/10] " Steve Dickson
2009-08-06 18:45 ` [Patch 6/10] " Steve Dickson
2009-08-06 20:44   ` Chuck Lever
2009-08-07 17:34     ` Steve Dickson
2009-08-06 18:46 ` [Patch 7/10] " Steve Dickson
     [not found]   ` <4A7B2515.2040304-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2009-08-06 20:35     ` Chuck Lever
2009-08-07 17:17       ` Steve Dickson
2009-08-07 18:37       ` Steve Dickson [this message]
2009-08-06 18:48 ` [Patch 9/10] " Steve Dickson
2009-08-06 18:49 ` [Patch 10/10] " Steve Dickson
2009-08-17 13:12 ` [Patch 0/10] " Steve Dickson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A7C7462.1090605@RedHat.com \
    --to=steved@redhat.com \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=nfsv4@linux-nfs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.