e19a30
diff -up nfs-utils-1.3.0/systemd/auth-rpcgss-module.service.orig nfs-utils-1.3.0/systemd/auth-rpcgss-module.service
e19a30
--- nfs-utils-1.3.0/systemd/auth-rpcgss-module.service.orig	2014-09-30 14:51:14.000000000 -0400
e19a30
+++ nfs-utils-1.3.0/systemd/auth-rpcgss-module.service	2014-09-30 14:51:14.000000000 -0400
e19a30
@@ -0,0 +1,15 @@
e19a30
+# We want to start gss-proxy on kernels that support it and rpc.svcgssd
e19a30
+# on those that don't.  Those services check for support by checking
e19a30
+# for existence of the path /proc/net/rpc/use-gss-proxy.  Before they
e19a30
+# can perform that check, they need this module loaded.  (Unless
e19a30
+# rpcsec_gss support is built directly into the kernel, in which case this
e19a30
+# unit will fail.  But that's OK.)
e19a30
+[Unit]
e19a30
+Description=Kernel Module supporting RPCSEC_GSS
e19a30
+Before=gssproxy.service rpc-svcgssd.service rpc-gssd.service
e19a30
+Wants=gssproxy.service rpc-svcgssd.service rpc-gssd.service
e19a30
+ConditionPathExists=/etc/krb5.keytab
e19a30
+
e19a30
+[Service]
e19a30
+Type=oneshot
e19a30
+ExecStart=/sbin/modprobe -q auth_rpcgss
e19a30
diff -up nfs-utils-1.3.0/systemd/nfs-client.target.orig nfs-utils-1.3.0/systemd/nfs-client.target
e19a30
--- nfs-utils-1.3.0/systemd/nfs-client.target.orig	2014-09-30 14:51:14.000000000 -0400
e19a30
+++ nfs-utils-1.3.0/systemd/nfs-client.target	2014-09-30 14:51:55.000000000 -0400
e19a30
@@ -5,9 +5,12 @@ Wants=remote-fs-pre.target
e19a30
 
e19a30
 # Note: we don't "Wants=rpc-statd.service" as "mount.nfs" will arrange to
e19a30
 # start that on demand if needed.
e19a30
-Wants=rpc-gssd.service rpc-svcgssd.service
e19a30
 Wants=nfs-blkmap.service rpc-statd-notify.service
e19a30
-After=rpc-gssd.service rpc-svcgssd.service nfs-blkmap.service
e19a30
+After=nfs-blkmap.service
e19a30
+
e19a30
+# GSS services dependencies and ordering
e19a30
+Wants=auth-rpcgss-module.service
e19a30
+After=rpc-gssd.service rpc-svcgssd.service gssproxy.service
e19a30
 
e19a30
 [Install]
e19a30
 WantedBy=multi-user.target
e19a30
diff -up nfs-utils-1.3.0/systemd/nfs-server.service.orig nfs-utils-1.3.0/systemd/nfs-server.service
e19a30
--- nfs-utils-1.3.0/systemd/nfs-server.service.orig	2014-03-25 11:12:07.000000000 -0400
e19a30
+++ nfs-utils-1.3.0/systemd/nfs-server.service	2014-09-30 14:51:14.000000000 -0400
e19a30
@@ -2,14 +2,17 @@
e19a30
 Description=NFS server and services
e19a30
 Requires= network.target proc-fs-nfsd.mount rpcbind.target
e19a30
 Requires= nfs-mountd.service
e19a30
-Wants=rpc-statd.service nfs-idmapd.service rpc-gssd.service rpc-svcgssd.service
e19a30
+Wants=rpc-statd.service nfs-idmapd.service
e19a30
 Wants=rpc-statd-notify.service
e19a30
 
e19a30
 After= network.target proc-fs-nfsd.mount rpcbind.target nfs-mountd.service
e19a30
 After= nfs-idmapd.service rpc-statd.service
e19a30
-After= rpc-gssd.service rpc-svcgssd.service
e19a30
 Before= rpc-statd-notify.service
e19a30
 
e19a30
+# GSS services dependencies and ordering
e19a30
+Wants=auth-rpcgss-module.service
e19a30
+After=rpc-gssd.service gssproxy.service rpc-svcgssd.service
e19a30
+
e19a30
 Wants=nfs-config.service
e19a30
 After=nfs-config.service
e19a30