]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
btrfs: use "btrfs device ready"
authorHarald Hoyer <harald@redhat.com>
Thu, 14 Feb 2013 11:36:09 +0000 (12:36 +0100)
committerHarald Hoyer <harald@redhat.com>
Mon, 18 Feb 2013 10:58:11 +0000 (11:58 +0100)
modules.d/90btrfs/btrfs_device_ready.sh [new file with mode: 0755]
modules.d/90btrfs/btrfs_finished.sh
modules.d/90btrfs/module-setup.sh

diff --git a/modules.d/90btrfs/btrfs_device_ready.sh b/modules.d/90btrfs/btrfs_device_ready.sh
new file mode 100755 (executable)
index 0000000..a88203a
--- /dev/null
@@ -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 $?
index 19715f6b6201115d39cd6fc8052f20eacd74c9d9..5e7691a3959b09423cd3d906cd4c8fe018c9f906 100755 (executable)
@@ -11,7 +11,6 @@ btrfs_check_complete() {
     _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 0
         unset __btrfs_mount
         mount -o ro "$_dev" /tmp >/dev/null 2>&1
         __btrfs_mount=$?
index 526d9dd43189d579a755e54594633046095e12de..5decb9893ce8ceb827e16063e626ccb85c26d614 100755 (executable)
@@ -31,9 +31,15 @@ installkernel() {
 
 install() {
     inst_rules "$moddir/80-btrfs.rules"
-    inst_script "$moddir/btrfs_finished.sh" /sbin/btrfs_finished
     inst_script "$moddir/btrfs_timeout.sh" /sbin/btrfs_timeout
     dracut_install btrfsck
     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
 }