linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [nfs-utils PATCH RFC 0/2] Add support for -s/--state-directory-path for rpc.mountd and exportfs
@ 2017-01-30 19:32 Scott Mayhew
  2017-01-30 19:32 ` [nfs-utils PATCH RFC 1/2] libnsm.a: refactor nsm_setup_pathnames() and nsm_make_pathname() Scott Mayhew
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Scott Mayhew @ 2017-01-30 19:32 UTC (permalink / raw)
  To: steved; +Cc: neilb, linux-nfs

Currently, rpc.mountd's -s/--state-directory-path option doesn't really
do anything (rpc.mountd tests it via chdir() but that's all).  These
patches implement the -s/--state-directory-path option so that
rpc.mountd's state files (the etab and rmtab) can be placed in a
location other than /var/lib/nfs... for example, /run/nfs.

To use /run/nfs, it's necessary to create a systemd-tmpfiles config
file, e.g.

# cat /usr/lib/tmpfiles.d/nfs.conf 
#Type Path           Mode  UID  GID  Age Argument
d    /run/nfs        0755  root root  -  -
f    /run/nfs/etab   0644  root root  -  -
f    /run/nfs/rmtab  0644  root root  -  -

and if selinux is in enforcing mode, the correct context would need to
be set on the directory (On Fedora, semanage barks at me if I use
/run/nfs... that's why I'm using /var/run/nfs here instead):
# semanage fcontext -a -t var_lib_nfs_t /var/run/nfs

Notes:

- I didn't actually implement the option (in either the command line or
the nfs.conf) for exportfs.  Instead it reads rpc.mountd's setting from
the nfs.conf so that they're using the same value.  Maybe it would be
better to add the option to exportfs too and emit a warning if exportfs
is using a different value than rpc.mountd (which would only be
detectable if mountd is using the nfs.conf).
- Since the contents of /run are volatile, moving the rmtab file there
would mean 'showmount -a' would only show NFSv3 mounts that have occurred
since the last boot.  I'm not sure if that's a big deal or not.  Looking
at the rmtab file on my main test server I see a lot of outdated
entries, so this might actually be preferable.
- Looking at rpc.mountd(8) it actually says 'Specify a directory in which
to place statd state information'... I'm not sure why mountd would care
where statd puts its state files.  The point of these two patches was to
separate that out, so that all that's left on /var/lib/nfs is the stuff
used by rpc.statd/sm-notify/nfsdcltrack.  I can either use a different
option or reword that sentence on the man page.


Scott Mayhew (2):
  libnsm.a: refactor nsm_setup_pathnames() and nsm_make_pathname()
  mountd/exportfs: implement the -s/--state-directory-path option

 support/export/xtab.c     |  82 +++++++++++++++++++++++++++++++++-
 support/include/misc.h    |   3 ++
 support/include/nfslib.h  |  17 +++++++
 support/misc/Makefile.am  |   2 +-
 support/misc/file.c       | 110 ++++++++++++++++++++++++++++++++++++++++++++++
 support/nfs/cacheio.c     |   4 +-
 support/nfs/rmtab.c       |   4 +-
 support/nsm/file.c        |  45 ++-----------------
 utils/exportfs/exportfs.c |  13 ++++++
 utils/mountd/auth.c       |   8 ++--
 utils/mountd/mountd.c     |  31 ++++++++-----
 utils/mountd/rmtab.c      |  26 ++++++-----
 utils/statd/Makefile.am   |   1 +
 13 files changed, 273 insertions(+), 73 deletions(-)
 create mode 100644 support/misc/file.c

-- 
2.7.4


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-01-31 14:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-30 19:32 [nfs-utils PATCH RFC 0/2] Add support for -s/--state-directory-path for rpc.mountd and exportfs Scott Mayhew
2017-01-30 19:32 ` [nfs-utils PATCH RFC 1/2] libnsm.a: refactor nsm_setup_pathnames() and nsm_make_pathname() Scott Mayhew
2017-01-30 19:32 ` [nfs-utils PATCH RFC 2/2] mountd/exportfs: implement the -s/--state-directory-path option Scott Mayhew
2017-01-30 21:49 ` [nfs-utils PATCH RFC 0/2] Add support for -s/--state-directory-path for rpc.mountd and exportfs NeilBrown
2017-01-31 14:05   ` Scott Mayhew

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).