Module Name: src
Committed By: haad
Date: Mon Oct 5 22:39:27 UTC 2009
Modified Files:
src/etc/rc.d: mountall
Log Message:
Add support for mounting zfs filesystems to mountall script. ZFS configuration
is stored in /etc/zpool.cache and it is automatically loaded to kernel from
filesystem. Filesystems are then configured accordingly to their properties
loaded from cache file.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/etc/rc.d/mountall
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/etc/rc.d/mountall
diff -u src/etc/rc.d/mountall:1.6 src/etc/rc.d/mountall:1.7
--- src/etc/rc.d/mountall:1.6 Mon Dec 1 14:47:14 2008
+++ src/etc/rc.d/mountall Mon Oct 5 22:39:27 2009
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $NetBSD: mountall,v 1.6 2008/12/01 14:47:14 tsutsui Exp $
+# $NetBSD: mountall,v 1.7 2009/10/05 22:39:27 haad Exp $
#
# REQUIRE: mountcritremote named ypbind
@@ -9,8 +9,40 @@
$_rc_subr_loaded . /etc/rc.subr
name="mountall"
-start_cmd="echo 'Mounting all filesystems...'; mount -a"
-stop_cmd="echo 'Unmounting all filesystems...'; umount -a"
+start_cmd="mountall_start"
+stop_cmd="mountall_stop"
+
+mountall_start()
+{
+ echo 'Mounting all filesystems...'
+ if [ -f /etc/zfs/zpool.cache ]; then
+ # Get ZFS module loaded (and thereby, zvols created).
+ zfs list > /dev/null 2>&1
+ # Mount file systems noted in fstab.
+ mount -a
+ # Mount ZFS file systems.
+ zfs mount -a
+ else
+ # Mount file systems noted in fstab.
+ mount -a
+ fi
+}
+
+mountall_stop()
+{
+ echo 'Unmounting all filesystems...'
+ if [ -f /etc/zfs/zpool.cache ]; then
+ # Unmount ZFS file systems.
+ zfs unmount -a
+ # Unmount file systems noted in fstab.
+ umount -a
+ # Unload ZFS module, so disk devices are closed.
+ modunload zfs
+ else
+ # Otherwise, just deal with fstab.
+ umount -a
+ fi
+}
load_rc_config $name
run_rc_command "$1"