Re: [PATCH 3/8] configure.ac: Add --with-statd-extension configure option

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

 



On Sat, 17 Sep 2011 08:28:45 -0400
Steve Dickson <SteveD@xxxxxxxxxx> wrote:

> 
> 
> On 09/12/2011 06:06 PM, Chuck Lever wrote:
> > Currently some distributions patch nfs-utils to put NSM state in a
> > subdirectory of /var/lib/nfs.  Make this a configure option instead.
> > 
> > Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
> > ---
> > 
> >  configure.ac       |    8 ++++++++
> >  support/nsm/file.c |    9 +--------
> >  2 files changed, 9 insertions(+), 8 deletions(-)
> > 
> > diff --git a/configure.ac b/configure.ac
> > index 461a96a..ba704e2 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(statd-extension,
> > +	[AC_HELP_STRING([--with-statd-extension=foo],
> > +                        [Put NSM state in subdir foo of statedir])],
> > +	statdext=$withval,
> > +	statdext="")
> > +	AC_SUBST(statdext)
> > +	AC_DEFINE_UNQUOTED(NSM_PATH_EXTENSION, "$statdext",
> > +			   [This defines the statedir subdirectory containing NSM state files.])
> >  AC_ARG_WITH(statduser,
> >  	[AC_HELP_STRING([--with-statduser=rpcuser],
> >                          [statd to run under @<:@rpcuser or nobody@:>@]
> > diff --git a/support/nsm/file.c b/support/nsm/file.c
> > index a12c753..b4a5af1 100644
> > --- a/support/nsm/file.c
> > +++ b/support/nsm/file.c
> > @@ -93,14 +93,7 @@
> >  #define LINELEN		(RPCARGSLEN + SM_PRIV_SIZE * 2 + 1)
> >  
> >  #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
> > +#define NSM_DEFAULT_STATEDIR	NFS_STATEDIR "/" NSM_PATH_EXTENSION
> Do we really need the NSM_PATH_EXTENSION define? Would it be more
> straightforward to just have NFS_STATEDIR. Simplifying the code to:
> 
> #ifndef NFS_STATEDIR 
> #define NFS_STATEDIR "/var/lib/nfs"
> #endif
> 
> #define NSM_DEFAULT_STATEDIR		NFS_STATEDIR
> 
> If there is no need for the extra NSM_PATH_EXTENSION define then 
> we really don't want to create a configuration option for it.. IMHO..
> 


IIRC, the statd directory is not standard between distributions. Some
(like Fedora) put this dir in /var/lib/nfs/statd, and some just keep all
of that in /var/lib/nfs.

The main reason for not making the NSM statedir be /var/lib/nfs is
that statd defaults to running as the user that owns the statedir. We
don't really want /var/lib/nfs owned by rpcuser since it contains other
things that it shouldn't have access to if statd were compromised.

I think the idea here is to push this patch to mainline so we can stop
carrying nfs-utils-1.2.2-statdpath.patch in the Fedora repo and turn it
into an option that distros can use to put this in the location they
prefer.

If we do what you're suggesting above, we'll need a transition scheme
for Fedora and RHEL, and a way to deal with making statd run as the
proper user. I don't think we really want to go to that much effort for
statd...

-- 
Jeff Layton <jlayton@xxxxxxxxxx>
--
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