File: libdevmapper1.01.init

package info (click to toggle)
devmapper 2%3A1.01.00-4sarge1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 4,044 kB
  • ctags: 2,336
  • sloc: ansic: 11,777; sh: 2,695; makefile: 291; perl: 16
file content (54 lines) | stat: -rw-r--r-- 1,303 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/sh
#
# libdevmapper1.01	This script manages devices needed by libdevmapper.
#
# Written by Andres Salomon <dilinger@voxel.net>
#

set -e

# load the device-mappper module, if it hasn't already been done
modprobe dm-mod >/dev/null 2>&1 || true

create_dm()
{
	dm_dir="/dev/mapper"
	dm_file="$dm_dir/control"

	if test -c /dev/.devfsd; then
		echo "DEVFS detected, done."
		return 1
	fi
	
	if test ! -f /proc/devices || test ! -f /proc/misc; then
		echo "unable to continue without /proc/misc and /proc/devices."
		return 2
	fi

        major=$(grep "[0-9] misc$" /proc/devices | sed -e 's/[ ]\+misc//' -e's/ //g')
        minor=$(grep "[0-9] device-mapper$" /proc/misc | sed -e 's/[ ]\+device-mapper//' -e's/ //g')
	ls=`(ls -l $dm_file 2>/dev/null||/bin/true) | grep "^c.* $major,[ ]\+$minor"`
        test -d $dm_dir || mkdir --mode=755 $dm_dir >/dev/null 2>&1
        test -z "$major" || test -z "$minor" || test -z "$ls" && rm -f $dm_file && mknod --mode=660 $dm_file c $major $minor >/dev/null 2>&1

	return 0
}

case "$1" in
	start|restart|reload|force-reload)
		echo -n "Creating device-mapper devices..."
		create_dm && echo "done."
	;;
	
	stop)
		# do nothing
		:
	;;

	*)
		echo "Usage: /etc/init.d/libdevmapper1.00 {start|stop|restart|reload|force-reload}" >&2
		exit 1
	;;
esac

exit 0