[nfs-utils PATCH v3 0/2] Add support for -s/--state-directory-path for rpc.mountd and exportfs

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

 



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(/.*)?"

Changes since v1:

- Replaced all newly-added occurrences of the term 'xtab' so it wouldn't
  be confused with the recently removed 'xtab' file.  I did not replace
  any existing uses of the term 'xtab' though.
- Removed the reference to statd on the mountd man page.

Changes since v2:
- Fixed string-handling blunder I made in generic_setup_basedir(). Tested with 
  pathnames of length 4083 (the largest you can have and still append
  "/.rmtab.lock"), 4084 (generic_make_pathname() will fail for ".rmtab.lock"),
  4095, 4096, and 4097.
- Removed error_check() from support/misc/file.c and added the check directly
  in generic_make_pathname()
- Removed _PATH_ETAB* and _PATH_RMTAB* as they're no longer used.
- Updated the nfs.conf.man and exportfs.man pages.


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       |  83 ++++++++++++++++++++++++++++++++-
 support/include/misc.h      |   3 ++
 support/include/nfslib.h    |  35 +++++++-------
 support/misc/Makefile.am    |   2 +-
 support/misc/file.c         | 110 ++++++++++++++++++++++++++++++++++++++++++++
 support/nfs/cacheio.c       |   6 ++-
 support/nfs/rmtab.c         |   4 +-
 support/nsm/file.c          |  46 ++----------------
 systemd/nfs.conf.man        |   7 +++
 utils/exportfs/exportfs.c   |  13 ++++++
 utils/exportfs/exportfs.man |  23 +++++++++
 utils/mountd/auth.c         |   8 ++--
 utils/mountd/mountd.c       |  31 ++++++++-----
 utils/mountd/mountd.man     |   2 +-
 utils/mountd/rmtab.c        |  26 ++++++-----
 utils/statd/Makefile.am     |   1 +
 16 files changed, 307 insertions(+), 93 deletions(-)
 create mode 100644 support/misc/file.c

-- 
2.7.4

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