From: Steve Dickson <SteveD@redhat.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Tony Asleson <tasleson@redhat.com>, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] exportfs: Add -s option.
Date: Mon, 21 Oct 2013 09:51:25 -0400 [thread overview]
Message-ID: <5265315D.9030008@RedHat.com> (raw)
In-Reply-To: <20131002214015.GA20902@fieldses.org>
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...
>
> Still can't help thinking there must be some needlessly duplicated code
> here.
There is... but I stilling adding the -s makes sense....
steved.
>
> --b.
>
>>
>> Signed-off-by: Tony Asleson <tasleson@redhat.com>
>> ---
>> 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@monad.swb.de>
>> .\" Modifications 1999-2003 Neil Brown <neilb@cse.unsw.edu.au>
>> .\"
>> -.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@vger.kernel.org
>> 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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2013-10-21 13:50 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-02 17:19 [PATCH] exportfs: Add -s option Tony Asleson
2013-10-02 21:40 ` J. Bruce Fields
2013-10-21 13:51 ` Steve Dickson [this message]
2013-10-21 14:01 ` J. Bruce Fields
2013-10-21 16:55 ` Steve Dickson
2013-10-21 18:01 ` J. Bruce Fields
2013-10-21 17:14 ` 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=5265315D.9030008@RedHat.com \
--to=steved@redhat.com \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
--cc=tasleson@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).