Re: [PATCH] exportfs: Add -s option.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 21, 2013 at 09:51:25AM -0400, Steve Dickson wrote:
> On 02/10/13 17:40, J. Bruce Fields wrote:
> > On Wed, Oct 02, 2013 at 12:19:49PM -0500, Tony Asleson wrote:
> >> Adds '-s' option which outputs the current exports in a format
> >> suitable for /etc/exports.
> > 
> > Sounds like a good idea....
> > 
> > Is there any difference between this and what's written to
> > /var/lib/nfs/etab?
> Yes... The following options are in the etab but not in
> the -s output... 
> 
> sync,hide,nocrossmnt,secure,no_all_squash,secure_locks,acl,anonuid=65534,anongid=65534
> 
> > 
> > OK looks like the latter is more verbose--it doesn't skip default
> > options.
> The only real difference between -v and -s is -v uses the 
> string "<world>" in for MCL_ANONYMOUS and -s uses "*" 
> 
> I guess we could change -v to used what the -s is proposing,
> but that could break someone's existing configuration...  

Also, looking at my home server....  It would be annoying to get:

	/export *(rw,sync,wdelay,hide,nocrossmnt,insecure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)

when all you need is:

	/export <world>(rw,wdelay,insecure,no_root_squash,no_subtree_check)

(Actually I wonder why it's even showing wdelay and no_subtree_check
when those are both defaults?  But this is on F16, maybe it's different
now.  I should really update that machine.)

> > Still can't help thinking there must be some needlessly duplicated code
> > here.
> There is... but I stilling adding the -s makes sense....

Fine by me.

--b.

> 
> steved.
> 
> > 
> > --b.
> > 
> >>
> >> Signed-off-by: Tony Asleson <tasleson@xxxxxxxxxx>
> >> ---
> >>  utils/exportfs/exportfs.c   | 23 ++++++++++++++---------
> >>  utils/exportfs/exportfs.man |  5 ++++-
> >>  2 files changed, 18 insertions(+), 10 deletions(-)
> >>
> >> diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
> >> index 4331697..52fc03d 100644
> >> --- a/utils/exportfs/exportfs.c
> >> +++ b/utils/exportfs/exportfs.c
> >> @@ -38,7 +38,7 @@ static void	export_all(int verbose);
> >>  static void	exportfs(char *arg, char *options, int verbose);
> >>  static void	unexportfs(char *arg, int verbose);
> >>  static void	exports_update(int verbose);
> >> -static void	dump(int verbose);
> >> +static void	dump(int verbose, int export_format);
> >>  static void	error(nfs_export *exp, int err);
> >>  static void	usage(const char *progname, int n);
> >>  static void	validate_export(nfs_export *exp);
> >> @@ -88,6 +88,7 @@ main(int argc, char **argv)
> >>  	int	f_export = 1;
> >>  	int	f_all = 0;
> >>  	int	f_verbose = 0;
> >> +	int	f_export_format = 0;
> >>  	int	f_reexport = 0;
> >>  	int	f_ignore = 0;
> >>  	int	i, c;
> >> @@ -105,7 +106,7 @@ main(int argc, char **argv)
> >>  
> >>  	export_errno = 0;
> >>  
> >> -	while ((c = getopt(argc, argv, "afhio:ruv")) != EOF) {
> >> +	while ((c = getopt(argc, argv, "afhio:ruvs")) != EOF) {
> >>  		switch(c) {
> >>  		case 'a':
> >>  			f_all = 1;
> >> @@ -132,6 +133,9 @@ main(int argc, char **argv)
> >>  		case 'v':
> >>  			f_verbose = 1;
> >>  			break;
> >> +		case 's':
> >> +			f_export_format = 1;
> >> +			break;
> >>  		default:
> >>  			usage(progname, 1);
> >>  			break;
> >> @@ -164,7 +168,7 @@ main(int argc, char **argv)
> >>  			return 0;
> >>  		} else {
> >>  			xtab_export_read();
> >> -			dump(f_verbose);
> >> +			dump(f_verbose, f_export_format);
> >>  			return 0;
> >>  		}
> >>  	}
> >> @@ -634,7 +638,7 @@ dumpopt(char c, char *fmt, ...)
> >>  }
> >>  
> >>  static void
> >> -dump(int verbose)
> >> +dump(int verbose, int export_format)
> >>  {
> >>  	nfs_export	*exp;
> >>  	struct exportent *ep;
> >> @@ -647,14 +651,15 @@ dump(int verbose)
> >>  			if (!exp->m_xtabent)
> >>  			    continue; /* neilb */
> >>  			if (htype == MCL_ANONYMOUS)
> >> -				hname = "<world>";
> >> +				hname = (export_format) ? "*" : "<world>";
> >>  			else
> >>  				hname = ep->e_hostname;
> >> -			if (strlen(ep->e_path) > 14)
> >> +			if (strlen(ep->e_path) > 14 && !export_format)
> >>  				printf("%-14s\n\t\t%s", ep->e_path, hname);
> >>  			else
> >> -				printf("%-14s\t%s", ep->e_path, hname);
> >> -			if (!verbose) {
> >> +				printf(((export_format)? "%s %s" : "%-14s\t%s"), ep->e_path, hname);
> >> +
> >> +			if (!verbose && !export_format) {
> >>  				printf("\n");
> >>  				continue;
> >>  			}
> >> @@ -728,6 +733,6 @@ error(nfs_export *exp, int err)
> >>  static void
> >>  usage(const char *progname, int n)
> >>  {
> >> -	fprintf(stderr, "usage: %s [-afhioruv] [host:/path]\n", progname);
> >> +	fprintf(stderr, "usage: %s [-afhioruvs] [host:/path]\n", progname);
> >>  	exit(n);
> >>  }
> >> diff --git a/utils/exportfs/exportfs.man b/utils/exportfs/exportfs.man
> >> index 8853486..590f9cf 100644
> >> --- a/utils/exportfs/exportfs.man
> >> +++ b/utils/exportfs/exportfs.man
> >> @@ -3,7 +3,7 @@
> >>  .\" Copyright (C) 1995 Olaf Kirch <okir@xxxxxxxxxxxx>
> >>  .\" Modifications 1999-2003 Neil Brown <neilb@xxxxxxxxxxxxxxx>
> >>  .\"
> >> -.TH exportfs 8 "31 December 2009"
> >> +.TH exportfs 8 "30 September 2013"
> >>  .SH NAME
> >>  exportfs \- maintain table of exported NFS file systems
> >>  .SH SYNOPSIS
> >> @@ -133,6 +133,9 @@ when they make their next NFS mount request.
> >>  Be verbose. When exporting or unexporting, show what's going on. When
> >>  displaying the current export list, also display the list of export
> >>  options.
> >> +.TP
> >> +.B -s
> >> +Display the current export list suitable for /etc/exports.
> >>  .SH DISCUSSION
> >>  .SS Exporting Directories
> >>  The first synopsis shows how to invoke
> >> -- 
> >> 1.8.2.1
> >>
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> >> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux