]> git.pld-linux.org Git - projects/geninitrd.git/blame - 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
CommitLineData
2d769917
ER
1#!/bin/sh
2# geninitrd mod: bcache
3# requires 3.10 kernel
4# http://bcache.evilpiepirate.org/
5USE_BCACHE=${USE_BCACHE:-yes}
6
7# setup geninitrd module
8# @access public
9setup_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
22find_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
45initrd_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 1.589913 seconds and 4 git commands to generate.