]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
split nfs rpc daemons startup script
authorDave Young <dyoung@redhat.com>
Thu, 2 Feb 2012 08:00:07 +0000 (16:00 +0800)
committerHarald Hoyer <harald@redhat.com>
Tue, 7 Feb 2012 11:14:21 +0000 (12:14 +0100)
fstab-sys will mount nonroot nfs as well, so we need to split the necessary
code from nfsroot to start rpc daemon as hook script.

Signed-off-by: Dave Young <dyoung@redhat.com>
modules.d/95nfs/module-setup.sh
modules.d/95nfs/nfs-start-rpc.sh [new file with mode: 0755]
modules.d/95nfs/nfsroot

index 72d3b42b0156bd97591c7f786cf964e968ae9f44..0e921ff1fe0e05e800da0c92fde0273ad77e7875 100755 (executable)
@@ -57,6 +57,7 @@ install() {
     dracut_install $(for _i in $(ls {/usr,}$libdir/libnss*.so 2>/dev/null); do echo $_i;done | egrep "$_nsslibs")
 
     inst_hook cmdline 90 "$moddir/parse-nfsroot.sh"
+    inst_hook pre-udev 99 "$moddir/nfs-start-rpc.sh"
     inst_hook pre-pivot 99 "$moddir/nfsroot-cleanup.sh"
     inst "$moddir/nfsroot" "/sbin/nfsroot"
     mkdir -m 0755 -p "$initdir/var/lib/nfs/rpc_pipefs"
diff --git a/modules.d/95nfs/nfs-start-rpc.sh b/modules.d/95nfs/nfs-start-rpc.sh
new file mode 100755 (executable)
index 0000000..525c636
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# Start rpcbind or rpcbind
+# FIXME occasionally saw 'rpcbind: fork failed: No such device' -- why?
+command -v portmap >/dev/null && [ -z "$(pidof portmap)" ] && portmap
+command -v rpcbind >/dev/null && [ -z "$(pidof rpcbind)" ] && rpcbind
+
+[ ! -d /var/lib/nfs/rpc_pipefs/nfs ] && \
+    mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
+
+# Start rpc.statd as mount won't let us use locks on a NFSv4
+# filesystem without talking to it. NFSv4 does locks internally,
+# rpc.lockd isn't needed
+[ -z "$(pidof rpc.statd)" ] && rpc.statd
+[ -z "$(pidof rpc.idmapd)" ] && rpc.idmapd
index cca4a326f19719503f27e9be250a13e343b72352..2103e24ab026ce5c81fd215ae238f8cd803eb34c 100755 (executable)
@@ -84,22 +84,7 @@ getarg rw && nfsrw=rw
 
 options=${options:+$options,}$nfsrw
 
-# Start rpcbind or rpcbind
-# FIXME occasionally saw 'rpcbind: fork failed: No such device' -- why?
-command -v portmap >/dev/null && [ -z "$(pidof portmap)" ] && portmap
-command -v rpcbind >/dev/null && [ -z "$(pidof rpcbind)" ] && rpcbind
-
 if [ "$nfs" = "nfs4" ]; then
-    [ ! -d /var/lib/nfs/rpc_pipefs/nfs ] && \
-         mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
-
-    # Start rpc.statd as mount won't let us use locks on a NFSv4
-    # filesystem without talking to it. NFSv4 does locks internally,
-    # rpc.lockd isn't needed
-    [ -z "$(pidof rpc.statd)" ] && rpc.statd
-
-    [ -z "$(pidof rpc.idmapd)" ] && rpc.idmapd
-
     # XXX Should we loop here?
     mount -t nfs4 -o$options${nfslock+,$nfslock} \
         $server:$path $NEWROOT \