Browse Source

btrfs: use "btrfs device ready"

master
Harald Hoyer 12 years ago
parent
commit
1a6fdf2417
  1. 21
      modules.d/90btrfs/btrfs_device_ready.sh
  2. 1
      modules.d/90btrfs/btrfs_finished.sh
  3. 8
      modules.d/90btrfs/module-setup.sh

21
modules.d/90btrfs/btrfs_device_ready.sh

@ -0,0 +1,21 @@
#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh

type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh

btrfs_check_complete() {
local _rootinfo _dev
_dev="${1:-/dev/root}"
[ -e "$_dev" ] || return 0
_rootinfo=$(udevadm info --query=env "--name=$_dev" 2>/dev/null)
if strstr "$_rootinfo" "ID_FS_TYPE=btrfs"; then
info "Checking, if btrfs device complete"
btrfs device ready "$_dev" >/dev/null 2>&1
return $?
fi
return 0
}

btrfs_check_complete $1
exit $?

1
modules.d/90btrfs/btrfs_finished.sh

@ -11,7 +11,6 @@ btrfs_check_complete() {
_rootinfo=$(udevadm info --query=env "--name=$_dev" 2>/dev/null) _rootinfo=$(udevadm info --query=env "--name=$_dev" 2>/dev/null)
if strstr "$_rootinfo" "ID_FS_TYPE=btrfs"; then if strstr "$_rootinfo" "ID_FS_TYPE=btrfs"; then
info "Checking, if btrfs device complete" info "Checking, if btrfs device complete"
btrfs device ready "$_dev" >/dev/null 2>&1 && return 0
unset __btrfs_mount unset __btrfs_mount
mount -o ro "$_dev" /tmp >/dev/null 2>&1 mount -o ro "$_dev" /tmp >/dev/null 2>&1
__btrfs_mount=$? __btrfs_mount=$?

8
modules.d/90btrfs/module-setup.sh

@ -31,9 +31,15 @@ installkernel() {


install() { install() {
inst_rules "$moddir/80-btrfs.rules" inst_rules "$moddir/80-btrfs.rules"
inst_script "$moddir/btrfs_finished.sh" /sbin/btrfs_finished
inst_script "$moddir/btrfs_timeout.sh" /sbin/btrfs_timeout inst_script "$moddir/btrfs_timeout.sh" /sbin/btrfs_timeout
dracut_install btrfsck dracut_install btrfsck
inst $(command -v btrfs) /sbin/btrfs inst $(command -v btrfs) /sbin/btrfs

case "$(btrfs --help)" in
*device\ ready*)
inst_script "$moddir/btrfs_device_ready.sh" /sbin/btrfs_finished ;;
*)
inst_script "$moddir/btrfs_finished.sh" /sbin/btrfs_finished ;;
esac
} }



Loading…
Cancel
Save