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 <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
statedir=$withval,
statedir=/var/lib/nfs)
AC_SUBST(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@:>@]
AC_ARG_WITH(statduser,
[AC_HELP_STRING([--with-statduser=rpcuser],
[statd to run under @<:@rpcuser or nobody@:>@]
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!])
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"}
if test "x$cross_compiling" = "xno"; then
CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"}
#define NSM_KERNEL_STATE_FILE "/proc/sys/fs/nfs/nsm_local_state"
#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"
static char nsm_base_dirname[PATH_MAX] = NSM_DEFAULT_STATEDIR;
#define NSM_MONITOR_DIR "sm"