Improve OpenRC init script
[zfs.git] / etc / init.d / zfs.gentoo.in
index 31a539c..0034e02 100644 (file)
@@ -1,25 +1,37 @@
 #!/sbin/runscript
 # Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
+# Released under the 2-clause BSD license.
 # $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs/files/zfs,v 0.9 2011/04/30 10:13:43 devsk Exp $
 
+if [ -z "$init" ]; then
+    # Not interactive
+    grep -Eqi 'zfs=off|zfs=no' /proc/cmdline && exit 3
+fi
+
 depend()
 {
+       # Try to allow people to mix and match fstab with ZFS in a way that makes sense.
+       if [ "$(mountinfo -s /)" = 'zfs' ]
+       then
+               before localmount
+       else
+               after localmount
+       fi
+
        # bootmisc will log to /var which may be a different zfs than root.
-       before net bootmisc
-       after udev localmount
+       before bootmisc logger
        keyword -lxc -openvz -prefix -vserver
 }
 
 ZFS="@sbindir@/zfs"
 ZPOOL="@sbindir@/zpool"
-ZPOOL_CACHE="@initdir@/zpool.cache"
+ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache"
 ZFS_MODULE=zfs
 
 checksystem() {
        if [ ! -c /dev/zfs ]; then
                einfo "Checking if ZFS modules present"
-               if [ "x$(modprobe -l  $ZFS_MODULE | grep $ZFS_MODULE)" == "x" ]; then
+               if ! modinfo zfs > /dev/null 2>&1 ; then
                        eerror "$ZFS_MODULE not found. Is the ZFS package installed?"
                        return 1
                fi