From 5c3e26650a54af7826a2b4c6759b56681a350c37 Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Tue, 20 Sep 2011 12:52:46 -0400 Subject: [PATCH] statd: Decouple statd's state directory from the NFS state directory To allow greater flexibility to where statd's state is kept, statd's state path can now be decoupled from the normal NFS state directory. In configure.ac, the NSM_DEFAULT_STATEDIR definition will now define the path to where the state information is kept. The default value, /var/lib/nfs, can be redefined with the --with-statdpath flag. Reviewed-by: Chuck Lever Signed-off-by: Steve Dickson --- configure.ac | 9 +++++++++ support/nsm/file.c | 8 -------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index b5934c4..500172b 100644 --- a/configure.ac +++ b/configure.ac @@ -23,6 +23,14 @@ AC_ARG_WITH(statedir, statedir=$withval, statedir=/var/lib/nfs) AC_SUBST(statedir) +AC_ARG_WITH(statdpath, + [AC_HELP_STRING([--with-statdpath=/foo @<:@default=/var/lib/nfs@:>@], + [define statd's state dir as /foo instead of the NFS statedir] + )], + statdpath=$withval, + statdpath=$statedir + ) + AC_SUBST(statdpath) AC_ARG_WITH(statduser, [AC_HELP_STRING([--with-statduser=rpcuser], [statd to run under @<:@rpcuser or nobody@:>@] @@ -387,6 +395,7 @@ dnl ************************************************************* dnl Export some path names to config.h dnl ************************************************************* AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!]) +AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file]) if test "x$cross_compiling" = "xno"; then CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"} diff --git a/support/nsm/file.c b/support/nsm/file.c index a12c753..5dd52c1 100644 --- a/support/nsm/file.c +++ b/support/nsm/file.c @@ -94,14 +94,6 @@ #define NSM_KERNEL_STATE_FILE "/proc/sys/fs/nfs/nsm_local_state" -/* - * Some distributions place statd's files in a subdirectory - */ -#define NSM_PATH_EXTENSION -/* #define NSM_PATH_EXTENSION "/statd" */ - -#define NSM_DEFAULT_STATEDIR NFS_STATEDIR NSM_PATH_EXTENSION - static char nsm_base_dirname[PATH_MAX] = NSM_DEFAULT_STATEDIR; #define NSM_MONITOR_DIR "sm" -- 2.39.2