#!/sbin/runscript
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-fs/lvm2/files/lvm.rc-2.02.67-r1,v 1.1 2010/06/09 22:41:45 robbat2 Exp $

depend() {
	if [ -f /etc/init.d/sysfs ]; then
		# on baselayout-1 this causes
		# dependency-cycles with checkroot (before *)
		before checkfs fsck
		after modules device-mapper
	fi
	# As of .67-r1, we call ALL lvm start/stop scripts with --sysinit, that
	# means dmeventd is NOT notified, as it cannot be safely running
	before dmeventd
}

run_addon() {
	local f=/lib/rcscripts/addons/$1.sh
	if [ -r "$f" ]; then
		( . "$f" )
	fi
}

start() {
	if [ ! -f /etc/init.d/sysfs ]; then
		eerror "The $SVCNAME init-script is written for baselayout-2!"
		eerror "Please do not use it with baselayout-1!".
		return 1
	fi

	run_addon lvm-start
}

stop() {
	run_addon lvm-stop
}

# vim:ts=4
