Re: [PATCH 1/1] Fix non-default statedir paths.

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

 





On 7/12/21 10:06 AM, James Hilliard wrote:
Signed-off-by: James Hilliard <james.hilliard1@xxxxxxxxx>
Committed... (tag: nfs-utils-2-5-5-rc1)

steved
---
  configure.ac                                  | 19 +++++++++++++++++++
  systemd/Makefile.am                           |  5 ++++-
  systemd/rpc-pipefs-generator.c                |  2 +-
  systemd/rpc_pipefs.target                     |  3 ---
  systemd/rpc_pipefs.target.in                  |  3 +++
  ....mount => var-lib-nfs-rpc_pipefs.mount.in} |  2 +-
  utils/blkmapd/device-discovery.c              |  2 +-
  utils/gssd/gssd.h                             |  2 +-
  utils/idmapd/idmapd.c                         |  2 +-
  9 files changed, 31 insertions(+), 9 deletions(-)
  delete mode 100644 systemd/rpc_pipefs.target
  create mode 100644 systemd/rpc_pipefs.target.in
  rename systemd/{var-lib-nfs-rpc_pipefs.mount => var-lib-nfs-rpc_pipefs.mount.in} (84%)

diff --git a/configure.ac b/configure.ac
index 93520a80..bc2d0f02 100644
--- a/configure.ac
+++ b/configure.ac
@@ -688,9 +688,28 @@ AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
  AC_SUBST([_sysconfdir])
  AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])
+# make _statedir available for substituion in config files
+# 2 "evals" needed late to expand variable names.
+AC_SUBST([_statedir])
+AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir])
+
+if test "$statedir" = "/var/lib/nfs"; then
+	rpc_pipefsmount="var-lib-nfs-rpc_pipefs.mount"
+else
+	rpc_pipefsmount="$(systemd-escape -p "$statedir/rpc_pipefs").mount"
+fi
+AC_SUBST(rpc_pipefsmount)
+
+# make _rpc_pipefsmount available for substituion in config files
+# 2 "evals" needed late to expand variable names.
+AC_SUBST([_rpc_pipefsmount])
+AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount])
+
  AC_CONFIG_FILES([
  	Makefile
  	systemd/rpc-gssd.service
+	systemd/rpc_pipefs.target
+	systemd/var-lib-nfs-rpc_pipefs.mount
  	linux-nfs/Makefile
  	support/Makefile
  	support/export/Makefile
diff --git a/systemd/Makefile.am b/systemd/Makefile.am
index 650ad25c..8c7b676f 100644
--- a/systemd/Makefile.am
+++ b/systemd/Makefile.am
@@ -12,7 +12,9 @@ unit_files =  \
      rpc-statd-notify.service \
      rpc-statd.service \
      \
-    proc-fs-nfsd.mount \
+    proc-fs-nfsd.mount
+
+rpc_pipefs_mount_file = \
      var-lib-nfs-rpc_pipefs.mount
if CONFIG_NFSV4
@@ -75,4 +77,5 @@ genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
  install-data-hook: $(unit_files)
  	mkdir -p $(DESTDIR)/$(unitdir)
  	cp $(unit_files) $(DESTDIR)/$(unitdir)
+	cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
  endif
diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
index 8e218aa7..c24db567 100644
--- a/systemd/rpc-pipefs-generator.c
+++ b/systemd/rpc-pipefs-generator.c
@@ -21,7 +21,7 @@
  #include "conffile.h"
  #include "systemd.h"
-#define RPC_PIPEFS_DEFAULT "/var/lib/nfs/rpc_pipefs"
+#define RPC_PIPEFS_DEFAULT NFS_STATEDIR "/rpc_pipefs"
static int generate_mount_unit(const char *pipefs_path, const char *pipefs_unit,
  			       const char *dirname)
diff --git a/systemd/rpc_pipefs.target b/systemd/rpc_pipefs.target
deleted file mode 100644
index 01d4d278..00000000
--- a/systemd/rpc_pipefs.target
+++ /dev/null
@@ -1,3 +0,0 @@
-[Unit]
-Requires=var-lib-nfs-rpc_pipefs.mount
-After=var-lib-nfs-rpc_pipefs.mount
diff --git a/systemd/rpc_pipefs.target.in b/systemd/rpc_pipefs.target.in
new file mode 100644
index 00000000..332f62b6
--- /dev/null
+++ b/systemd/rpc_pipefs.target.in
@@ -0,0 +1,3 @@
+[Unit]
+Requires=@_rpc_pipefsmount@
+After=@_rpc_pipefsmount@
diff --git a/systemd/var-lib-nfs-rpc_pipefs.mount b/systemd/var-lib-nfs-rpc_pipefs.mount.in
similarity index 84%
rename from systemd/var-lib-nfs-rpc_pipefs.mount
rename to systemd/var-lib-nfs-rpc_pipefs.mount.in
index 26d1c763..4c5d6ce4 100644
--- a/systemd/var-lib-nfs-rpc_pipefs.mount
+++ b/systemd/var-lib-nfs-rpc_pipefs.mount.in
@@ -6,5 +6,5 @@ Conflicts=umount.target
[Mount]
  What=sunrpc
-Where=/var/lib/nfs/rpc_pipefs
+Where=@_statedir@/rpc_pipefs
  Type=rpc_pipefs
diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
index 77ebe736..2736ac89 100644
--- a/utils/blkmapd/device-discovery.c
+++ b/utils/blkmapd/device-discovery.c
@@ -63,7 +63,7 @@
  #define EVENT_SIZE (sizeof(struct inotify_event))
  #define EVENT_BUFSIZE (1024 * EVENT_SIZE)
-#define RPCPIPE_DIR "/var/lib/nfs/rpc_pipefs"
+#define RPCPIPE_DIR	NFS_STATEDIR "/rpc_pipefs"
  #define PID_FILE	"/run/blkmapd.pid"
#define CONF_SAVE(w, f) do { \
diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h
index c52c5b48..519dc431 100644
--- a/utils/gssd/gssd.h
+++ b/utils/gssd/gssd.h
@@ -39,7 +39,7 @@
  #include <pthread.h>
#ifndef GSSD_PIPEFS_DIR
-#define GSSD_PIPEFS_DIR		"/var/lib/nfs/rpc_pipefs"
+#define GSSD_PIPEFS_DIR		NFS_STATEDIR "/rpc_pipefs"
  #endif
  #define DNOTIFY_SIGNAL		(SIGRTMIN + 3)
diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
index 51c71fbb..e2c160e8 100644
--- a/utils/idmapd/idmapd.c
+++ b/utils/idmapd/idmapd.c
@@ -73,7 +73,7 @@
  #include "nfslib.h"
#ifndef PIPEFS_DIR
-#define PIPEFS_DIR  "/var/lib/nfs/rpc_pipefs/"
+#define PIPEFS_DIR  NFS_STATEDIR "/rpc_pipefs/"
  #endif
#ifndef NFSD_DIR





[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