Re: [PATCH 1/2] nfs-service: Added the starting of gssproxy

J. Bruce Fields
2014-09-23T15:16:22Z

On Tue, Sep 23, 2014 at 11:06:45AM -0400, Steve Dickson wrote:
>
>
> On 09/22/2014 09:55 PM, J. Bruce Fields wrote:
> > On Mon, Sep 22, 2014 at 08:26:55PM -0400, Simo Sorce wrote:
> >> No, starting before those service in itself achieves nothing.\
> >> I think what may cause the module to load maybe the fact
> >> gssproxy.service includes:
> >> Requires=proc-fs-nfsd.mount
> >
> > I'd expect that to only load the nfsd module.
> >
> > Hm, I think nfsd actually has a dependency on auth_rpcgss. I wonder if
> > that's correct. Maybe that's what's doing it.
> It is... In another thread I clearly showed that....

The dependency of nfsd on auth_rpcgss looks to me like an implementation
detail. The client module doesn't have the same dependency. We
definitely shouldn't depend on it, as the dependency could get removed
some day.

> So I really don't think another unit file is necessary...

I haven't seen an alternative yet.

--b.

>
> steved.
>
> >
> >> But to be honest this was a hack to deal with broken nfs service files,
> >> gss-proxy should not require nfsd, the dependency should be the other
> >> way around, as gss-proxy can run on machines where there is no nfs
> >> service whatsoever, as it stand this is a bug in gssproxy.service and
> >> I'd like to fix it.
> >
> > So, something like this? (Untested, no idea if I'm doing this right.)
> >
> > --b.
> >
> > diff --git a/systemd/auth-rpcgss-module.service b/systemd/auth-rpcgss-module.service
> > new file mode 100644
> > index 000000000000..252545b458fd
> > --- /dev/null
> > +++ b/systemd/auth-rpcgss-module.service
> > @@ -0,0 +1,15 @@
> > +# We want to start gss-proxy on kernels that support it and rpc.svcgssd
> > +# on those that don't. Those services check for support by checking
> > +# for existence of the path /proc/net/rpc/use-gss-proxy. Before they
> > +# can perform that check, they need this module loaded. (Unless
> > +# rpcsec_gss is built directly into the kernel, in which case this unit
> > +# will fail. But that's OK.)
> > +[Unit]
> > +Description=Kernel Module supporting RPCSEC_GSS
> > +Before=gssproxy.service rpc-svcgssd.service
> > +
> > +[Service]
> > +ExecStart=/sbin/modprobe -q auth_rpcgss
> > +
> > +[Install]
> > +WantedBy=gssproxy.service rpc-svcgssd.service
> >