From: NeilBrown <neilb@suse.com>
To: Steve Dickson <SteveD@redhat.com>
Cc: Linux NFS Mailing list <linux-nfs@vger.kernel.org>
Subject: [PATCH 5/8] mountd: Don't export unmounted exports to NFSv4
Date: Thu, 14 Jul 2016 12:26:43 +1000 [thread overview]
Message-ID: <20160714022643.5874.38987.stgit@noble> (raw)
In-Reply-To: <20160714021310.5874.22953.stgit@noble>
An export point with the "mountpoint" option should not be exported
if it isn't a mount point.
For NFSv3, this is handled primarily by failing the MOUNT request.
For NFSv4, we must ensure a lookup from the pseduo-root fails too.
This means nfsd_export must check for the 'mountpoint' option and handle
it correctly.
Signed-off-by: NeilBrown <neilb@suse.com>
---
utils/mountd/cache.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
index f33f66640c6c..19e7607e4fb1 100644
--- a/utils/mountd/cache.c
+++ b/utils/mountd/cache.c
@@ -1321,7 +1321,12 @@ static void nfsd_export(int f)
found = lookup_export(dom, path, ai);
if (found) {
- if (dump_to_cache(f, buf, sizeof(buf), dom, path, &found->m_export) < 0) {
+ if (found->m_export.e_mountpoint &&
+ !is_mountpoint(found->m_export.e_mountpoint[0]?
+ found->m_export.e_mountpoint:
+ found->m_export.e_path))
+ dump_to_cache(f, buf, sizeof(buf), dom, path, NULL);
+ else if (dump_to_cache(f, buf, sizeof(buf), dom, path, &found->m_export) < 0) {
xlog(L_WARNING,
"Cannot export %s, possibly unsupported filesystem"
" or fsid= required", path);
prev parent reply other threads:[~2016-07-14 2:28 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-14 2:26 [PATCH 0/8] Assorted mount-related nfs-utils patches NeilBrown
2016-07-14 2:26 ` [PATCH 8/8] mount: use a public address for IPv6 callback NeilBrown
2016-07-14 2:26 ` [PATCH 7/8] mount: don't treat temporary name resolution failure as permanent NeilBrown
2016-07-19 23:01 ` NeilBrown
2016-07-14 2:26 ` [PATCH 2/8] mountd: remove the --exports-file option NeilBrown
2016-07-18 16:19 ` J. Bruce Fields
2016-07-14 2:26 ` [PATCH 6/8] mountd: don't add paths to non-mounted export points to pseudo-root NeilBrown
2016-07-18 20:32 ` J. Bruce Fields
2016-07-19 8:00 ` Chuck Lever
2016-07-19 22:59 ` NeilBrown
2016-07-21 17:33 ` J. Bruce Fields
2016-07-25 7:22 ` NeilBrown
2016-07-28 20:54 ` J. Bruce Fields
2016-07-14 2:26 ` [PATCH 4/8] mountd: cause attempts to access unmounted exportpoints to return ESTALE NeilBrown
2016-07-14 2:26 ` [PATCH 1/8] nfs.man: clarify effect of 'retry' option NeilBrown
2016-07-14 2:26 ` [PATCH 3/8] mountd: remove 'dev_missing' checks NeilBrown
2016-07-18 20:01 ` J. Bruce Fields
2016-07-19 22:50 ` NeilBrown
2016-07-21 17:24 ` J. Bruce Fields
2016-08-11 2:51 ` NeilBrown
2016-08-16 15:21 ` J. Bruce Fields
2016-08-18 1:32 ` NeilBrown
2016-08-18 2:57 ` Chuck Lever
2016-08-19 1:31 ` NeilBrown
2016-08-18 13:57 ` J. Bruce Fields
2016-08-19 1:28 ` NeilBrown
2016-08-19 17:27 ` J. Bruce Fields
2016-07-14 2:26 ` NeilBrown [this message]
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=20160714022643.5874.38987.stgit@noble \
--to=neilb@suse.com \
--cc=SteveD@redhat.com \
--cc=linux-nfs@vger.kernel.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.