summaryrefslogtreecommitdiff
path: root/etc/rc.d/raidframe
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>2001-06-16 07:16:14 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2001-06-16 07:16:14 +0000
commit9d62501fd8278c7cde01dcb4d0f2b3c7c757bf86 (patch)
tree0deb0532b31a1530d216ab3fb40d91256496fc7b /etc/rc.d/raidframe
parentd6e91b3149feddfba4e7be11a6a946ef85474d0f (diff)
Notes
Diffstat (limited to 'etc/rc.d/raidframe')
-rwxr-xr-xetc/rc.d/raidframe43
1 files changed, 43 insertions, 0 deletions
diff --git a/etc/rc.d/raidframe b/etc/rc.d/raidframe
new file mode 100755
index 000000000000..640ad6f9dad4
--- /dev/null
+++ b/etc/rc.d/raidframe
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# $NetBSD: raidframe,v 1.4 2000/05/16 16:54:33 oster Exp $
+#
+
+# PROVIDE: disks
+
+. /etc/rc.subr
+
+name="raidframe"
+start_cmd="raidframe_start"
+stop_cmd=":"
+
+raidframe_start()
+{
+ # Configure raid devices.
+ # Ensure order by globbing raid[0-9].conf before raid[0-9][0-9].conf.
+ #
+ for cfg in /etc/raid[0-9].conf /etc/raid[0-9][0-9].conf ; do
+ [ ! -f $cfg ] && continue
+ dev=${cfg##*/}
+ dev=${dev%%.conf}
+ raidctl -c $cfg $dev
+ done
+
+ # Initiate parity/mirror reconstruction as needed.
+ # Backgrounded, and sequentially ordered.
+ #
+ # XXX: this currently doesn't work for autoconfigured raid devices
+ # that don't have a corresponding raidN.conf
+ #
+ (
+ for cfg in /etc/raid[0-9].conf /etc/raid[0-9][0-9].conf ; do
+ [ ! -f $cfg ] && continue
+ dev=${cfg##*/}
+ dev=${dev%%.conf}
+ raidctl -P $dev
+ done
+ ) &
+}
+
+load_rc_config $name
+run_rc_command "$1"