From: Neil Brown <neilb@suse.de>
To: Jeff Layton <jlayton@redhat.com>
Cc: linux-nfs@vger.kernel.org, bfields@fieldses.org,
chuck.lever@oracle.com, steved@redhat.com
Subject: Re: [PATCH] rpc.nfsd: mount up nfsdfs is it doesn't appear to be mounted yet
Date: Sun, 29 Aug 2010 08:38:53 +1000 [thread overview]
Message-ID: <20100829083853.4e95d2ee@notabene> (raw)
In-Reply-To: <1282995314-8317-1-git-send-email-jlayton@redhat.com>
(I might have just sent an empty reply to this - sorry 'bout that).
On Sat, 28 Aug 2010 07:35:14 -0400
Jeff Layton <jlayton@redhat.com> wrote:
> There's a bit of a chicken and egg problem when nfsd is run the first
> time. On Fedora/RHEL at least, /proc/fs/nfsd is mounted up whenever nfsd
> is plugged in via a modprobe.conf "install" directive.
>
> If someone runs rpc.nfsd without plugging in nfsd.ko first,
> /proc/fs/nfsd won't be mounted and rpc.nfsd will end up using the legacy
> nfsctl interface. After that, nfsd will be plugged in and subsequent
> rpc.nfsd invocations will use that instead.
>
> This is a problem as some nfsd command-line options are ignored when the
> legacy interface is used. It'll also be a problem for people who want
> IPv6 enabled servers. The upshot is that we really don't want to use the
> legacy interface unless there is no other option.
>
> To avoid this situation, have rpc.nfsd check to see if the "threads"
> file is already present. If it's not, then make an attempt to mount
> /proc/fs/nfsd. This is a "best-effort" sort of thing, however so we
> just ignore the return code from the mount attempt and fall back to
> using nfsctl() if it fails.
>
> Full disclosure: I'm not 100% thrilled with this patch. It seems ugly
> and kludgey, but I don't see a better way to handle this problem.
> Suggestions welcome.
I don't think it is all that bad. It is a shame you have to use system()
rather than just calling mount() directly but I guess we need that to
update /etc/mtab.
Suggestions:
- just don't do that. Use /etc/init.d/nfsserver start (or whatever the
distro uses).
- Make /proc/fs/nfsd and auto-mount point. That sounds like the systemd
approach.
- Print a warning message if the kernel is newer than 2.6 and nfsd-fs isn't
mounted - see "don't do that" above.
- If nfsdfs isn't mounted, try a no-op via the nfsd syscall, like
NFSCTL_GETFD with invalid parameters. This will trigger a mod-probe which
will trigger the mount.
Then check for the mounted filesystem again. Yes, I think I like that one
the best.
NeilBrown
next prev parent reply other threads:[~2010-08-28 22:39 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-28 11:35 [PATCH] rpc.nfsd: mount up nfsdfs is it doesn't appear to be mounted yet Jeff Layton
2010-08-28 22:29 ` Neil Brown
2010-08-28 22:38 ` Neil Brown [this message]
2010-08-29 2:24 ` Jeff Layton
2010-08-29 19:31 ` J. Bruce Fields
2010-08-29 19:37 ` J. Bruce Fields
2010-08-29 22:12 ` Neil Brown
2010-08-30 15:51 ` Steve Dickson
2010-08-30 16:16 ` Jeff Layton
2010-08-30 16:53 ` Steve Dickson
2010-08-30 17:04 ` J. Bruce Fields
2010-08-30 17:22 ` Jeff Layton
2010-08-31 12:14 ` Steve Dickson
2010-08-30 17:48 ` Jeff Layton
2010-08-31 12:24 ` Steve Dickson
2010-08-31 12:43 ` Jeff Layton
2010-08-31 14:49 ` Steve Dickson
2010-08-31 15:10 ` Jeff Layton
2010-08-31 15:13 ` J. Bruce Fields
2010-08-31 15:18 ` Steve Dickson
2010-08-31 15:51 ` J. Bruce Fields
2010-08-31 16:13 ` Steve Dickson
2010-08-31 16:15 ` J. Bruce Fields
2010-08-31 17:18 ` Steve Dickson
2010-08-31 18:07 ` J. Bruce Fields
2010-08-31 18:59 ` Steve Dickson
2010-08-31 19:02 ` Jeff Layton
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=20100829083853.4e95d2ee@notabene \
--to=neilb@suse.de \
--cc=bfields@fieldses.org \
--cc=chuck.lever@oracle.com \
--cc=jlayton@redhat.com \
--cc=linux-nfs@vger.kernel.org \
--cc=steved@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