]>
Commit | Line | Data |
---|---|---|
2d769917 ER |
1 | #!/bin/sh |
2 | # geninitrd mod: bcache | |
3 | # requires 3.10 kernel | |
4 | # http://bcache.evilpiepirate.org/ | |
5 | USE_BCACHE=${USE_BCACHE:-yes} | |
6 | ||
7 | # setup geninitrd module | |
8 | # @access public | |
9 | setup_mod_bcache() { | |
10 | if [ ! -d /sys/fs/bcache ]; then | |
11 | USE_BCACHE=no | |
12 | fi | |
13 | ||
14 | if [ ! -x /lib/udev/bcache-register ]; then | |
15 | USE_BCACHE=no | |
16 | fi | |
17 | } | |
18 | ||
0bdde1a1 ER |
19 | # find modules for $devpath |
20 | # @param $devpath device to be examined | |
2d769917 ER |
21 | # @access public |
22 | find_modules_bcache() { | |
23 | if ! is_yes "$USE_BCACHE"; then | |
24 | return | |
25 | fi | |
26 | ||
0bdde1a1 ER |
27 | local devpath="$1" |
28 | local dev=${devpath#/dev/} | |
29 | local slavedir=/sys/block/$dev/slaves | |
30 | ||
31 | if [ ! -d $slavedir ]; then | |
32 | die "Cannot inspect $slavedir for $devpath" | |
33 | fi | |
2d769917 | 34 | |
0bdde1a1 ER |
35 | for dev in $slavedir/*; do |
36 | dev=${dev#$slavedir/} | |
37 | find_modules_for_devpath /dev/$dev | |
38 | done | |
39 | ||
40 | find_module "bcache" | |
41 | } | |
2d769917 ER |
42 | |
43 | # generate initrd fragment | |
44 | # @access public | |
45 | initrd_gen_bcache() { | |
46 | if ! is_yes "$USE_BCACHE"; then | |
47 | return | |
48 | fi | |
49 | ||
50 | verbose "Adding bcache support to initrd" | |
51 | ||
52 | inst_rules 69-bcache.rules | |
53 | inst_exec /lib/udev/bcache-register /lib/udev | |
54 | } |