]> git.pld-linux.org Git - projects/geninitrd.git/blob - mod-bcache.sh
Timeout here is not a good idea. rootfs cannot be mounted and kernel oopses due to...
[projects/geninitrd.git] / mod-bcache.sh
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
19 # find modules for $devpath
20 # @param        $devpath        device to be examined
21 # @access       public
22 find_modules_bcache() {
23         if ! is_yes "$USE_BCACHE"; then
24                 return
25         fi
26
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
34
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 }
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 }
This page took 0.201802 seconds and 3 git commands to generate.