[dracut/f16] fixed mdraid container handling Resolves: rhbz#743240

Harald Hoyer harald at fedoraproject.org
Tue Oct 4 11:20:13 UTC 2011


commit 1dccad8157af4790ada01c70b096ba740bb16328
Author: Harald Hoyer <harald at redhat.com>
Date:   Tue Oct 4 13:19:52 2011 +0200

    fixed mdraid container handling
    Resolves: rhbz#743240

 ...0dmsquash-live-do-not-symlink-to-dev-live.patch |   27 ---
 ...nt-securityfs-in-a-seperate-dracut-module.patch |   17 +--
 ...nt-securityfs-in-a-seperate-dracut-module.patch |   21 ++
 0045-90mdraid-adjust-stock-mdadm-udev-rules.patch  |   37 ++++
 0046-90mdraid-containers-are-not-runnable.patch    |   91 +++++++++
 0047-90mdraid-fix-adjust-mdraid-cleanup.patch      |   66 +++++++
 0048-90mdraid-fix-adjust-force-run-script.patch    |  136 +++++++++++++
 0049-90-md-dm-raid-recognize-ddf-container.patch   |  140 ++++++++++++++
 ...ix-adjust-65-md-rules-and-related-scripts.patch |  200 ++++++++++++++++++++
 ...-relaxed-check-on-ext3-filesystem-options.patch |   58 ++++++
 ...s-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch |   61 ++++++
 ...tions-inst_rules-do-not-check-std-dirs-fo.patch |   37 ++++
 0054-str_replace-fix.patch                         |   33 ++++
 ...er-bail-out-early-if-we-don-t-have-to-log.patch |   37 ++++
 ...dracut-create-dev-besides-proc-sys-and-so.patch |   24 +++
 ...fs-lib-export-FSTAB_FILE-before-fsck-call.patch |   26 +++
 0058-dracut-functions-inst_rules-add-missing.patch |   22 +++
 ...d-check-precisely-for-supported-contaiers.patch |   46 +++++
 ...draid-more-thorough-64-md-raid.rules-edit.patch |   25 +++
 0061-90mdraid-adjust-dev-md-loops.patch            |   53 +++++
 0064-order-mdadm-and-lvm-timeout-operations.patch  |   36 ++++
 ...raid-mdraid_start.sh-fix-path-to-md-sysfs.patch |   22 +++
 dracut.spec                                        |   54 +++++-
 23 files changed, 1224 insertions(+), 45 deletions(-)
---
diff --git a/0043-mount-securityfs-in-a-seperate-dracut-module.patch b/0043-mount-securityfs-in-a-seperate-dracut-module.patch
index 3832949..7e5bd72 100644
--- a/0043-mount-securityfs-in-a-seperate-dracut-module.patch
+++ b/0043-mount-securityfs-in-a-seperate-dracut-module.patch
@@ -1,30 +1,17 @@
-From 9d0755c2d1a5eb13413caa80f69d7ad39589d304 Mon Sep 17 00:00:00 2001
+From 16457c869d3fac6a94e204f1edac1ad9fffae55a Mon Sep 17 00:00:00 2001
 From: Harald Hoyer <harald at redhat.com>
 Date: Tue, 20 Sep 2011 11:16:53 +0200
 Subject: [PATCH] mount securityfs in a seperate dracut module
 
 ---
- dracut.spec                            |    1 +
  modules.d/96securityfs/module-setup.sh |   15 +++++++++++++++
  modules.d/96securityfs/securityfs.sh   |   10 ++++++++++
  modules.d/98integrity/module-setup.sh  |    2 +-
  modules.d/99base/init                  |    6 ------
- 5 files changed, 27 insertions(+), 7 deletions(-)
+ 4 files changed, 26 insertions(+), 7 deletions(-)
  create mode 100755 modules.d/96securityfs/module-setup.sh
  create mode 100755 modules.d/96securityfs/securityfs.sh
 
-diff --git a/dracut.spec b/dracut.spec
-index 76f4fe1..f9848ed 100644
---- a/dracut.spec
-+++ b/dracut.spec
-@@ -247,6 +247,7 @@ rm -rf $RPM_BUILD_ROOT
- %{_datadir}/dracut/modules.d/95zfcp
- %{_datadir}/dracut/modules.d/95terminfo
- %{_datadir}/dracut/modules.d/95udev-rules
-+%{_datadir}/dracut/modules.d/96securityfs
- %{_datadir}/dracut/modules.d/97biosdevname
- %{_datadir}/dracut/modules.d/97masterkey
- %{_datadir}/dracut/modules.d/98ecryptfs
 diff --git a/modules.d/96securityfs/module-setup.sh b/modules.d/96securityfs/module-setup.sh
 new file mode 100755
 index 0000000..fbe3aa3
diff --git a/0044-mount-securityfs-in-a-seperate-dracut-module.patch b/0044-mount-securityfs-in-a-seperate-dracut-module.patch
new file mode 100644
index 0000000..c029c3c
--- /dev/null
+++ b/0044-mount-securityfs-in-a-seperate-dracut-module.patch
@@ -0,0 +1,21 @@
+From 6d385c7111c81fe730c1823b232d19e8d42f50d4 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 20 Sep 2011 11:16:53 +0200
+Subject: [PATCH] mount securityfs in a seperate dracut module
+
+---
+ dracut.spec |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/dracut.spec b/dracut.spec
+index 76f4fe1..f9848ed 100644
+--- a/dracut.spec
++++ b/dracut.spec
+@@ -247,6 +247,7 @@ rm -rf $RPM_BUILD_ROOT
+ %{_datadir}/dracut/modules.d/95zfcp
+ %{_datadir}/dracut/modules.d/95terminfo
+ %{_datadir}/dracut/modules.d/95udev-rules
++%{_datadir}/dracut/modules.d/96securityfs
+ %{_datadir}/dracut/modules.d/97biosdevname
+ %{_datadir}/dracut/modules.d/97masterkey
+ %{_datadir}/dracut/modules.d/98ecryptfs
diff --git a/0045-90mdraid-adjust-stock-mdadm-udev-rules.patch b/0045-90mdraid-adjust-stock-mdadm-udev-rules.patch
new file mode 100644
index 0000000..e71a173
--- /dev/null
+++ b/0045-90mdraid-adjust-stock-mdadm-udev-rules.patch
@@ -0,0 +1,37 @@
+From e3e5128cf20660c0789f9b4e2285dbc1f35f6799 Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Tue, 6 Sep 2011 00:17:23 +0200
+Subject: [PATCH] 90mdraid: adjust stock mdadm udev rules
+
+Currently shipped mdadm rules incrementally assemble all imsm and native
+raids, and do so unconditionally. This causes few issues:
+
+- fine-grained controls in 65-md* are shadowed - for example,
+  mdadm.conf's presence tests or uuid checks
+- 90dmraid might also conflict with 90mdraid, if user prefers the former
+  to handle containers
+- possibly other subtle issues
+
+This patch adjusts the behaviour.
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/90mdraid/module-setup.sh |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index de7785d..91a0769 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -50,6 +50,11 @@ install() {
+ 
+     if [ ! -x /lib/udev/vol_id ]; then
+         inst_rules 64-md-raid.rules
++        # remove incremental assembly from stock rules, so they don't shadow
++        # 65-md-inc*.rules and its fine-grained controls, or cause other problems
++        # when we explicitly don't want certain components to be incrementally
++        # assembled
++        sed -i -e '/^ENV{ID_FS_TYPE}==.*ACTION=="add".*RUN+="\/sbin\/mdadm --incremental $env{DEVNAME}"$/d' "${initdir}/lib/udev/rules.d/64-md-raid.rules"
+     fi
+ 
+     inst_rules "$moddir/65-md-incremental-imsm.rules"
diff --git a/0046-90mdraid-containers-are-not-runnable.patch b/0046-90mdraid-containers-are-not-runnable.patch
new file mode 100644
index 0000000..e75e476
--- /dev/null
+++ b/0046-90mdraid-containers-are-not-runnable.patch
@@ -0,0 +1,91 @@
+From 5f6a71b38af7550d11c790abd5ca0bd0cf7b7f05 Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Tue, 6 Sep 2011 00:17:25 +0200
+Subject: [PATCH] 90mdraid: containers are not runnable
+
+Remove whole "start a container logic".
+
+Containers once assembled, always remain in 'inactive' state.
+Any attempt to run a container with mdadm -IR is a no-op, and any
+attempt with just mdadm -R ends with an error.
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/90mdraid/65-md-incremental-imsm.rules |   20 --------------------
+ modules.d/90mdraid/md_finished.sh               |    2 +-
+ modules.d/90mdraid/mdcontainer_start.sh         |   12 ------------
+ modules.d/90mdraid/module-setup.sh              |    1 -
+ 4 files changed, 1 insertions(+), 34 deletions(-)
+ delete mode 100755 modules.d/90mdraid/mdcontainer_start.sh
+
+diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
+index 7c1d503..5e94a57 100644
+--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
++++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
+@@ -66,23 +66,3 @@ RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.s
+ RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdraid_start"
+ 
+ LABEL="end_raidstart"
+-
+-#
+-# Handle container raid arrays
+-#
+-ACTION=="add|change", \
+-	KERNEL=="md[0-9]*|md/*", \
+-	ENV{DEVTYPE}!="partition", \
+-	ENV{MD_LEVEL}=="container", \
+-        ENV{rd_MDADMCONF}!="?*", \
+-        ENV{rd_NO_MD}!="?*", \
+-	GOTO="do_container"
+-
+-GOTO="end_container"
+-
+-LABEL="do_container"
+-
+-RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
+-RUN+="/sbin/initqueue --timeout --onetime --unique --name mdcontainer_start-%k /sbin/mdcontainer_start $env{DEVNAME}"
+-
+-LABEL="end_container"
+diff --git a/modules.d/90mdraid/md_finished.sh b/modules.d/90mdraid/md_finished.sh
+index cde0966..ce355be 100755
+--- a/modules.d/90mdraid/md_finished.sh
++++ b/modules.d/90mdraid/md_finished.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+-for f in $hookdir/initqueue/settled/mdcontainer_start* $hookdir/initqueue/settled/mdraid_start* $hookdir/initqueue/settled/mdadm_auto*; do
++for f in $hookdir/initqueue/settled/mdraid_start* $hookdir/initqueue/settled/mdadm_auto*; do
+     [ -e $f ] && exit 1
+ done
+ 
+diff --git a/modules.d/90mdraid/mdcontainer_start.sh b/modules.d/90mdraid/mdcontainer_start.sh
+deleted file mode 100755
+index e7dd3ef..0000000
+--- a/modules.d/90mdraid/mdcontainer_start.sh
++++ /dev/null
+@@ -1,12 +0,0 @@
+-#!/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
+-
+-md=$1
+-udevadm control --stop-exec-queue
+-# and activate any containers
+-mdadm -IR $md 2>&1 | vinfo
+-ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/30-mdraid-cleanup.sh 2>/dev/null
+-ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
+-udevadm control --start-exec-queue
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index 91a0769..2dba8cb 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -77,7 +77,6 @@ install() {
+     inst_hook pre-udev 30 "$moddir/mdmon-pre-udev.sh"
+ 
+     inst "$moddir/mdraid_start.sh" /sbin/mdraid_start
+-    inst "$moddir/mdcontainer_start.sh" /sbin/mdcontainer_start
+     inst "$moddir/mdadm_auto.sh" /sbin/mdadm_auto
+     inst "$moddir/md_finished.sh" /sbin/md_finished.sh
+     inst_hook pre-trigger 30 "$moddir/parse-md.sh"
diff --git a/0047-90mdraid-fix-adjust-mdraid-cleanup.patch b/0047-90mdraid-fix-adjust-mdraid-cleanup.patch
new file mode 100644
index 0000000..926fcb8
--- /dev/null
+++ b/0047-90mdraid-fix-adjust-mdraid-cleanup.patch
@@ -0,0 +1,66 @@
+From 9383421c1cfc5fe1bc94cf3d3194bd96ee503628 Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Tue, 6 Sep 2011 00:17:26 +0200
+Subject: [PATCH] 90mdraid: fix/adjust mdraid-cleanup
+
+Stop both arrays (first pass) and containers (second pass).
+Loop only over /dev/md[0-9]*
+Call cleanup script only once, make sure it's after crypt cleanup.
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/90mdraid/mdraid-cleanup.sh |   30 +++++++++++++++++-------------
+ modules.d/90mdraid/mdraid_start.sh   |    1 -
+ 2 files changed, 17 insertions(+), 14 deletions(-)
+
+diff --git a/modules.d/90mdraid/mdraid-cleanup.sh b/modules.d/90mdraid/mdraid-cleanup.sh
+index add02e0..8fc54e2 100755
+--- a/modules.d/90mdraid/mdraid-cleanup.sh
++++ b/modules.d/90mdraid/mdraid-cleanup.sh
+@@ -2,18 +2,22 @@
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ 
+-# stop everything which is not busy
+-for i in /dev/md* /dev/md/*; do
+-    [ -b $i ] || continue
++type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+ 
+-    mddetail=$(udevadm info --query=property --name=$i)
+-    case "$mddetail" in
+-        *MD_LEVEL=container*)
+-        ;;
+-        *DEVTYPE=partition*)
+-        ;;
+-        *)
+-            mdadm --stop $i >/dev/null 2>&1
+-            ;;
+-    esac
++containers=""
++for md in /dev/md[0-9]*; do
++    [ -b "$md" ] || continue
++    udevinfo="$(udevadm info --query=env --name=$md)"
++    strstr "$udevinfo" "DEVTYPE=partition" && continue
++    if strstr "$udevinfo" "MD_LEVEL=container"; then
++        containers="$containers $md"
++        continue
++    fi
++    mdadm -S "$md" >/dev/null 2>&1
+ done
++
++for md in $containers; do
++    mdadm -S "$md" >/dev/null 2>&1
++done
++
++unset containers udevinfo
+diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
+index 4aa7f82..4c0255e 100755
+--- a/modules.d/90mdraid/mdraid_start.sh
++++ b/modules.d/90mdraid/mdraid_start.sh
+@@ -21,6 +21,5 @@ for md in /dev/md[0-9]* /dev/md/*; do
+ done
+ unset udevinfo
+ 
+-ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/30-mdraid-cleanup.sh 2>/dev/null
+ ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
+ udevadm control --start-exec-queue
diff --git a/0048-90mdraid-fix-adjust-force-run-script.patch b/0048-90mdraid-fix-adjust-force-run-script.patch
new file mode 100644
index 0000000..433ff46
--- /dev/null
+++ b/0048-90mdraid-fix-adjust-force-run-script.patch
@@ -0,0 +1,136 @@
+From 66426469d024b7760f59051af287e11ec6a94c1f Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Tue, 6 Sep 2011 00:17:27 +0200
+Subject: [PATCH] 90mdraid: fix/adjust force-run script
+
+1) mdadm -As --auto=yes --run 2>&1 | vinfo (removed)
+
+Currently such auto assembly will not complete or force-run partially
+assembled arrays. It might assemble "concurrent" separate array and
+force-run it, if possible (though the chances of suddenly showing
+missing components in this scenario - a script run after udev timeout -
+are pretty thin). See [1] for details. Also see #3 below.
+
+2) mdadm -Is --run 2>&1 (removed)
+
+This will only force-run native arrays - arrays in containers will not
+be affected. See [1] for details. Also see #3 below.
+
+3) mdadm -R run loop (implicitly handles #1 & #2)
+
+This loop does everywthing that #1 & #2 are expected to do. Thus, the
+above invocations are simply redundant and this is the most safe and
+flexible option.
+
+Also, it shouldn't be necessary to go under md/ directory, as those are
+just symlinks to /dev/md[0-9]*.
+
+Certain checks were changed to strict ones (array state, degraded state)
+instead of relying on env tricks.
+
+'cat' was added explicitly to installed programs (it has been used
+implicitly in shutdown script either way)
+
+4) mdmon bug
+
+See [1] for details as well. In short - force-run arrays in containers
+will not have mdmon started, so we do that manually.
+
+5) stop/run queue magic
+
+Also removed. mdadm -R will only cause change events to the array
+itself, and they should not be an issue.
+
+[1] http://article.gmane.org/gmane.linux.raid/35133
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/90mdraid/mdraid_start.sh |   51 ++++++++++++++++++++++--------------
+ modules.d/90mdraid/module-setup.sh |    2 +-
+ modules.d/90mdraid/parse-md.sh     |    1 +
+ 3 files changed, 33 insertions(+), 21 deletions(-)
+
+diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
+index 4c0255e..be5a3ce 100755
+--- a/modules.d/90mdraid/mdraid_start.sh
++++ b/modules.d/90mdraid/mdraid_start.sh
+@@ -3,23 +3,34 @@
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ 
+ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+-# run mdadm if udev has settled
+-info "Assembling MD RAID arrays"
+-udevadm control --stop-exec-queue
+-mdadm -As --auto=yes --run 2>&1 | vinfo
+-mdadm -Is --run 2>&1 | vinfo
+-
+-# there could still be some leftover devices
+-# which have had a container added
+-for md in /dev/md[0-9]* /dev/md/*; do
+-    [ -b "$md" ] || continue
+-    udevinfo="$(udevadm info --query=env --name=$md)"
+-    strstr "$udevinfo" "MD_UUID=" && continue
+-    strstr "$udevinfo" "MD_LEVEL=container" && continue
+-    strstr "$udevinfo" "DEVTYPE=partition" && continue
+-    mdadm --run "$md" 2>&1 | vinfo
+-done
+-unset udevinfo
+-
+-ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
+-udevadm control --start-exec-queue
++_md_force_run() {
++    local _udevinfo
++    local _path_s
++    local _path_d
++    # try to force-run anything not running yet
++    for md in /dev/md[0-9]*; do
++        [ -b "$md" ] || continue
++        _udevinfo="$(udevadm info --query=env --name="$md")"
++        strstr "$_udevinfo" "MD_LEVEL=container" && continue
++        strstr "$_udevinfo" "DEVTYPE=partition" && continue
++
++        _path_s="$(udevadm info -q path -n "$md")/md/array_state"
++        [ ! -r "$_path_s" ] && continue
++
++        # inactive ?
++        [ "$(cat "$_path_s")" != "inactive" ] && continue
++
++        mdadm -R "$md" 2>&1 | vinfo
++
++        # still inactive ?
++        [ "$(cat "$_path_s")" = "inactive" ] && continue
++
++        _path_d="${_path_s%/*}/degraded"
++        [ ! -r "$_path_d" ] && continue
++
++        # workaround for mdmon bug
++        [ "$(cat "$_path_d")" -gt "0" ] && mdmon --takeover "$md"
++    done
++}
++
++_md_force_run
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index 2dba8cb..cfc2a20 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -37,7 +37,7 @@ installkernel() {
+ }
+ 
+ install() {
+-    dracut_install mdadm partx
++    dracut_install mdadm partx cat
+ 
+ 
+      # XXX: mdmon really needs to run as non-root?
+diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
+index 6d1b615..63f3278 100755
+--- a/modules.d/90mdraid/parse-md.sh
++++ b/modules.d/90mdraid/parse-md.sh
+@@ -34,6 +34,7 @@ fi
+ 
+ if ! getargbool 1 rd.md.conf -n rd_NO_MDADMCONF; then
+     rm -f /etc/mdadm/mdadm.conf /etc/mdadm.conf
++    ln -s $(command -v mdraid-cleanup) $hookdir/pre-pivot/31-mdraid-cleanup.sh 2>/dev/null
+ fi
+ 
+ # noiswmd nodmraid for anaconda / rc.sysinit compatibility
diff --git a/0049-90-md-dm-raid-recognize-ddf-container.patch b/0049-90-md-dm-raid-recognize-ddf-container.patch
new file mode 100644
index 0000000..a289946
--- /dev/null
+++ b/0049-90-md-dm-raid-recognize-ddf-container.patch
@@ -0,0 +1,140 @@
+From cf5891424ef026eede69606a918dadf5560095fd Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Tue, 6 Sep 2011 00:17:24 +0200
+Subject: [PATCH] 90(md|dm)raid: recognize ddf container
+
+This patch adds ddf support, consistently with imsm/isw options.
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ dracut.kernel.7.xml                             |    6 ++++++
+ modules.d/90dmraid/61-dmraid-imsm.rules         |    1 +
+ modules.d/90dmraid/parse-dm.sh                  |    4 ++++
+ modules.d/90mdraid/65-md-incremental-imsm.rules |    3 ++-
+ modules.d/90mdraid/md-noddf.sh                  |    5 +++++
+ modules.d/90mdraid/md-noimsm.sh                 |    2 +-
+ modules.d/90mdraid/module-setup.sh              |    6 +++++-
+ modules.d/90mdraid/parse-md.sh                  |    6 ++++++
+ 8 files changed, 30 insertions(+), 3 deletions(-)
+ create mode 100755 modules.d/90mdraid/md-noddf.sh
+
+diff --git a/dracut.kernel.7.xml b/dracut.kernel.7.xml
+index b6e59e6..8d50d94 100644
+--- a/dracut.kernel.7.xml
++++ b/dracut.kernel.7.xml
+@@ -343,6 +343,12 @@ This parameter can be specified multiple times.</para>
+           </listitem>
+         </varlistentry>
+         <varlistentry>
++          <term><envar>rd.md.ddf</envar>=0</term>
++          <listitem>
++            <para>disable MD RAID for SNIA ddf raids, use DM RAID instead</para>
++          </listitem>
++        </varlistentry>
++        <varlistentry>
+           <term>
+             <envar>rd.md.conf</envar>=0
+           </term>
+diff --git a/modules.d/90dmraid/61-dmraid-imsm.rules b/modules.d/90dmraid/61-dmraid-imsm.rules
+index d87fce7..73ba58e 100644
+--- a/modules.d/90dmraid/61-dmraid-imsm.rules
++++ b/modules.d/90dmraid/61-dmraid-imsm.rules
+@@ -10,6 +10,7 @@ ENV{ID_FS_TYPE}=="linux_raid_member", GOTO="dm_end"
+ ENV{ID_FS_TYPE}!="*_raid_member", , GOTO="dm_end"
+ 
+ ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}!="?*", GOTO="dm_end"
++ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}!="?*", GOTO="dm_end"
+ 
+ ENV{rd_NO_DM}=="?*", GOTO="dm_end"
+ 
+diff --git a/modules.d/90dmraid/parse-dm.sh b/modules.d/90dmraid/parse-dm.sh
+index 059c396..fe38d35 100755
+--- a/modules.d/90dmraid/parse-dm.sh
++++ b/modules.d/90dmraid/parse-dm.sh
+@@ -12,3 +12,7 @@ if  ! command -v mdadm >/dev/null || ! getargbool 1 rd.md.imsm -n rd_NO_MDIMSM |
+     udevproperty rd_NO_MDIMSM=1
+ fi
+ 
++if  ! command -v mdadm >/dev/null || ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF || getarg noddfmd; then
++    info "rd.md.ddf=0: no MD RAID for SNIA ddf raids"
++    udevproperty rd_NO_MDDDF=1
++fi
+diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
+index 5e94a57..bb030cf 100644
+--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
++++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
+@@ -4,9 +4,10 @@
+ 
+ ACTION!="add|change", GOTO="md_inc_end"
+ SUBSYSTEM!="block", GOTO="md_inc_end"
+-ENV{ID_FS_TYPE}!="linux_raid_member|isw_raid_member", GOTO="md_inc_end"
++ENV{ID_FS_TYPE}!="*_raid_member", GOTO="md_inc_end"
+ 
+ ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_inc_end"
++ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_inc_end"
+ 
+ ENV{rd_NO_MD}=="?*", GOTO="md_inc_end"
+ 
+diff --git a/modules.d/90mdraid/md-noddf.sh b/modules.d/90mdraid/md-noddf.sh
+new file mode 100755
+index 0000000..bc46dd7
+--- /dev/null
++++ b/modules.d/90mdraid/md-noddf.sh
+@@ -0,0 +1,5 @@
++#!/bin/sh
++# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
++# ex: ts=8 sw=4 sts=4 et filetype=sh
++info "rd.md.ddf=0: no MD RAID for SNIA ddf raids"
++udevproperty rd_NO_MDDDF=1
+diff --git a/modules.d/90mdraid/md-noimsm.sh b/modules.d/90mdraid/md-noimsm.sh
+index bc9cf7f..8272f86 100755
+--- a/modules.d/90mdraid/md-noimsm.sh
++++ b/modules.d/90mdraid/md-noimsm.sh
+@@ -2,4 +2,4 @@
+ # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+ # ex: ts=8 sw=4 sts=4 et filetype=sh
+ info "rd.md.imsm=0: no MD RAID for imsm/isw raids"
+-udevproperty rd_NO_MDIMSM=1
+\ No newline at end of file
++udevproperty rd_NO_MDIMSM=1
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index cfc2a20..5c526a0 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -20,7 +20,7 @@ check() {
+             check_block_and_slaves is_mdraid "$_rootdev" || return 1
+         else
+             # root is not on a block device, use the shotgun approach
+-            blkid | egrep -q '(linux|isw)_raid' || return 1
++            blkid | grep -q '"[^"]*_raid_member"' || return 1
+         fi
+     }
+ 
+@@ -59,9 +59,13 @@ install() {
+ 
+     inst_rules "$moddir/65-md-incremental-imsm.rules"
+ 
++    # guard against pre-3.0 mdadm versions, that can't handle containers
+     if ! mdadm -Q -e imsm /dev/null &> /dev/null; then
+         inst_hook pre-trigger 30 "$moddir/md-noimsm.sh"
+     fi
++    if ! mdadm -Q -e ddf /dev/null &> /dev/null; then
++        inst_hook pre-trigger 30 "$moddir/md-noddf.sh"
++    fi
+ 
+     if [[ $hostonly ]] || [[ $mdadmconf = "yes" ]]; then
+         if [ -f /etc/mdadm.conf ]; then
+diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
+index 63f3278..33d93dc 100755
+--- a/modules.d/90mdraid/parse-md.sh
++++ b/modules.d/90mdraid/parse-md.sh
+@@ -43,3 +43,9 @@ if ! getargbool 1 rd.md.imsm -n rd_NO_MDIMSM || getarg noiswmd || getarg nodmrai
+     info "no MD RAID for imsm/isw raids"
+     udevproperty rd_NO_MDIMSM=1
+ fi
++
++# same thing with ddf containers
++if ! getargbool 1 rd.md.ddf -n rd_NO_MDDDF || getarg noddfmd || getarg nodmraid; then
++    info "no MD RAID for SNIA ddf raids"
++    udevproperty rd_NO_MDDDF=1
++fi
diff --git a/0050-90mdraid-fix-adjust-65-md-rules-and-related-scripts.patch b/0050-90mdraid-fix-adjust-65-md-rules-and-related-scripts.patch
new file mode 100644
index 0000000..53b6fe6
--- /dev/null
+++ b/0050-90mdraid-fix-adjust-65-md-rules-and-related-scripts.patch
@@ -0,0 +1,200 @@
+From a025cc17f0d8145492ffbb37735deca208e768bd Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Tue, 6 Sep 2011 00:17:28 +0200
+Subject: [PATCH] 90mdraid: fix/adjust 65-md* rules and related scripts
+
+Reworked the flow of the rules file a bit, removed redundant tests, also
+should be easier to follow. It's much shorter now as well, a bit more
+similar to 90lvm script - both revolve around same concepts after all.
+
+There's no reason to treat conf-assembled arrays differently from
+incremental ones. Once we hit timeout in init's udev loop, we can use
+common script (mdraid_start.sh) to try force inactive arrays
+into degraded mode.
+
+md-finished.sh was kind-of out of place - it didn't really wait for any
+particular device(s) to show up, just watched if onetime mdadm scripts
+are still in place. Furthermore, after moving mdraid_start to --timeout
+initqueue, it didn't really have too much to watch at all, besides
+mdadm_auto (and that served no purpose, as we do wait for concrete
+devices).
+
+Either way, with stock 64-md fixes, current version of 65-md*.rules does
+the following:
+
+- limits assembly to certain uuids, if specified
+- watch for no ddf/imsm
+- if mdadm.conf => setup onetime -As script, without forced --run option
+- if !mdadm.conf => incrementally assemble
+- for both cases, setup timeout script, run-forcing arrays as a last resort
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/90mdraid/65-md-incremental-imsm.rules |   79 ++++++++---------------
+ modules.d/90mdraid/md_finished.sh               |    9 ---
+ modules.d/90mdraid/mdadm_auto.sh                |    2 +-
+ modules.d/90mdraid/module-setup.sh              |    1 -
+ modules.d/90mdraid/parse-md.sh                  |    8 ++-
+ 5 files changed, 34 insertions(+), 65 deletions(-)
+ delete mode 100755 modules.d/90mdraid/md_finished.sh
+
+diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
+index bb030cf..209b17b 100644
+--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
++++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
+@@ -2,68 +2,45 @@
+ # automatically cause mdadm to be run.
+ # See udev(8) for syntax
+ 
+-ACTION!="add|change", GOTO="md_inc_end"
+-SUBSYSTEM!="block", GOTO="md_inc_end"
+-ENV{ID_FS_TYPE}!="*_raid_member", GOTO="md_inc_end"
+-
+-ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_inc_end"
+-ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_inc_end"
+-
+-ENV{rd_NO_MD}=="?*", GOTO="md_inc_end"
+-
+-PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
+-    GOTO="md_inc_end"
++ACTION!="add|change", GOTO="md_end"
++SUBSYSTEM!="block", GOTO="md_end"
++ENV{rd_NO_MD}=="?*", GOTO="md_end"
++KERNEL=="md*", GOTO="md_end"
++
++ENV{ID_FS_TYPE}!="*_raid_member", GOTO="md_end"
++ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_end"
++ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_end"
++
++# already done ?
++PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
++    GOTO="md_end"
++
++# for native arrays - array's uuid has to be specified
++# for containers - container's uuid has to be specified
++# TODO : how to get embedded array's uuid having container's component ?
++#
++# UUID CHECK
+ 
+ ENV{DEVTYPE}!="partition", \
+     RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
+ 
+-KERNEL!="md*", IMPORT{program}="/sbin/mdadm --examine --export $tempnode"
+-
+-# UUID CHECK
+-
+-LABEL="do_md_inc"
++RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdraid_start"
+ 
++# if rd_MDADMCONF is set, do not assemble incrementally;
++# defer conf-based assembly until the udev queue is settled
+ #
+-# if rd_MDADMCONF do not assemble incrementally
+-# defer auto assembly until the udev queue is settled
+-#
+-ENV{rd_MDADMCONF}!="?*", GOTO="md_auto_end"
++ENV{rd_MDADMCONF}!="?*", GOTO="md_incremental"
+ 
+-RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
+ RUN+="/sbin/initqueue --settled --onetime --unique /sbin/mdadm_auto"
+ 
+-GOTO="md_inc_end"
+-
+-LABEL="md_auto_end"
++GOTO="md_end"
+ 
+ #
+-# Incrementally build the md array
++# Incrementally build the md array; this will automatically assemble
++# any eventual containers as well (imsm, ddf)
+ #
+-RUN+="/sbin/mdadm -I $env{DEVNAME}"
+-
+-RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
+-
+-LABEL="md_inc_end"
+-
+-#
+-# Handle non-container raid arrays
+-#
+-ACTION=="add|change", \
+-	KERNEL=="md[0-9]*|md/*", \
+-	ENV{MD_LEVEL}!="container", \
+-	ENV{MD_CONTAINER}!="?*", \
+-        ENV{rd_MDADMCONF}!="?*", \
+-        ENV{rd_NO_MD}!="?*", \
+-	GOTO="do_raidstart"
++LABEL="md_incremental"
+ 
+-GOTO="end_raidstart"
+-
+-LABEL="do_raidstart"
+-
+-# check if array is not inactive anymore
+-TEST=="md/array_state", ATTR{md/array_state}!="|inactive", GOTO="end_raidstart"
+-
+-RUN+="/sbin/initqueue --finished --unique --name md_finished /sbin/md_finished.sh"
+-RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdraid_start"
++RUN+="/sbin/mdadm -I $env{DEVNAME}"
+ 
+-LABEL="end_raidstart"
++LABEL="md_end"
+diff --git a/modules.d/90mdraid/md_finished.sh b/modules.d/90mdraid/md_finished.sh
+deleted file mode 100755
+index ce355be..0000000
+--- a/modules.d/90mdraid/md_finished.sh
++++ /dev/null
+@@ -1,9 +0,0 @@
+-#!/bin/sh
+-# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+-# ex: ts=8 sw=4 sts=4 et filetype=sh
+-for f in $hookdir/initqueue/settled/mdraid_start* $hookdir/initqueue/settled/mdadm_auto*; do
+-    [ -e $f ] && exit 1
+-done
+-
+-$UDEV_QUEUE_EMPTY >/dev/null 2>&1 || exit 1
+-exit 0
+diff --git a/modules.d/90mdraid/mdadm_auto.sh b/modules.d/90mdraid/mdadm_auto.sh
+index 915fb28..9b61bf5 100755
+--- a/modules.d/90mdraid/mdadm_auto.sh
++++ b/modules.d/90mdraid/mdadm_auto.sh
+@@ -4,4 +4,4 @@
+ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+ 
+ info "Autoassembling MD Raid"
+-mdadm -As --auto=yes --run 2>&1 | vinfo
++mdadm -As --auto=yes 2>&1 | vinfo
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index 5c526a0..12e6739 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -82,7 +82,6 @@ install() {
+ 
+     inst "$moddir/mdraid_start.sh" /sbin/mdraid_start
+     inst "$moddir/mdadm_auto.sh" /sbin/mdadm_auto
+-    inst "$moddir/md_finished.sh" /sbin/md_finished.sh
+     inst_hook pre-trigger 30 "$moddir/parse-md.sh"
+     inst "$moddir/mdraid-cleanup.sh" /sbin/mdraid-cleanup
+     inst_hook shutdown 30 "$moddir/md-shutdown.sh"
+diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
+index 33d93dc..b85a3a3 100755
+--- a/modules.d/90mdraid/parse-md.sh
++++ b/modules.d/90mdraid/parse-md.sh
+@@ -13,12 +13,14 @@ else
+             [ -e "$f" ] || continue
+             while read line; do
+                 if [ "${line%%UUID CHECK}" != "$line" ]; then
++                    printf 'IMPORT{program}="/sbin/mdadm --examine --export $tempnode"\n'
+                     for uuid in $MD_UUID; do
+-                        printf 'ENV{MD_UUID}=="%s", GOTO="do_md_inc"\n' $uuid
++                        printf 'ENV{MD_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid
+                     done;
+-                    printf 'GOTO="md_inc_end"\n';
++                    printf 'GOTO="md_end"\n'
++                    printf 'LABEL="md_uuid_ok"\n'
+                 else
+-                    echo $line;
++                    echo "$line"
+                 fi
+             done < "${f}" > "${f}.new"
+             mv "${f}.new" "$f"
diff --git a/0051-TEST-40-NBD-relaxed-check-on-ext3-filesystem-options.patch b/0051-TEST-40-NBD-relaxed-check-on-ext3-filesystem-options.patch
new file mode 100644
index 0000000..facc88f
--- /dev/null
+++ b/0051-TEST-40-NBD-relaxed-check-on-ext3-filesystem-options.patch
@@ -0,0 +1,58 @@
+From 75e8f476e7bf33e2759b5a05b9d10f8befc4eedd Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 22 Sep 2011 12:56:31 +0200
+Subject: [PATCH] TEST-40-NBD: relaxed check on ext3 filesystem options
+
+onerror=continue does not seem to be displayed for new kernels
+---
+ test/TEST-40-NBD/client-init    |    1 +
+ test/TEST-40-NBD/create-root.sh |    1 +
+ test/TEST-40-NBD/test.sh        |    4 ++--
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/test/TEST-40-NBD/client-init b/test/TEST-40-NBD/client-init
+index 22dacd9..eb65b76 100755
+--- a/test/TEST-40-NBD/client-init
++++ b/test/TEST-40-NBD/client-init
+@@ -5,6 +5,7 @@ while read dev fs fstype opts rest; do
+     [ "$dev" = "rootfs" ] && continue
+     [ "$fs" != "/" ] && continue
+     echo "nbd-OK $fstype $opts" >/dev/sda
++    echo "nbd-OK $fstype $opts" 
+     break
+ done < /proc/mounts
+ export TERM=linux
+diff --git a/test/TEST-40-NBD/create-root.sh b/test/TEST-40-NBD/create-root.sh
+index bd866e4..4bef5f1 100755
+--- a/test/TEST-40-NBD/create-root.sh
++++ b/test/TEST-40-NBD/create-root.sh
+@@ -14,6 +14,7 @@ lvm vgcreate dracut /dev/mapper/dracut_crypt_test && \
+ lvm lvcreate -l 100%FREE -n root dracut && \
+ lvm vgchange -ay && \
+ mke2fs -j /dev/dracut/root && \
++/sbin/tune2fs -e continue /dev/dracut/root && \
+ mkdir -p /sysroot && \
+ mount /dev/dracut/root /sysroot && \
+ cp -a -t /sysroot /source/* && \
+diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
+index 675ffd4..c5603fd 100755
+--- a/test/TEST-40-NBD/test.sh
++++ b/test/TEST-40-NBD/test.sh
+@@ -40,7 +40,7 @@ client_test() {
+     local found opts nbdinfo
+ 
+     [[ $fstype ]] || fstype=ext3
+-    [[ $fsopt ]] || fsopt="errors=continue"
++    [[ $fsopt ]] || fsopt="ro"
+ 
+     echo "CLIENT TEST START: $test_name"
+ 
+@@ -198,7 +198,7 @@ make_encrypted_root() {
+     (
+ 	initdir=overlay
+ 	. $basedir/dracut-functions
+-	dracut_install mke2fs poweroff cp umount
++	dracut_install mke2fs poweroff cp umount tune2fs
+ 	inst_hook initqueue 01 ./create-root.sh
+ 	inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+     )
diff --git a/0052-99fs-lib-fs-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch b/0052-99fs-lib-fs-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch
new file mode 100644
index 0000000..edde8bd
--- /dev/null
+++ b/0052-99fs-lib-fs-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch
@@ -0,0 +1,61 @@
+From 662ed0a13f4b497352fe9b6a1d243f06e45c4f3d Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 22 Sep 2011 15:12:14 +0200
+Subject: [PATCH] 99fs-lib/fs-lib.sh: fsck btrfs via mounting like xfs
+
+btrfsck is only for manual repairing your filesystem
+---
+ modules.d/99fs-lib/fs-lib.sh |   33 ++++++++++++++++++++++++++++++++-
+ 1 files changed, 32 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
+index f7b20dd..edb5852 100755
+--- a/modules.d/99fs-lib/fs-lib.sh
++++ b/modules.d/99fs-lib/fs-lib.sh
+@@ -59,7 +59,7 @@ fsck_able() {
+             ;;
+         btrfs)
+             type btrfsck >/dev/null 2>&1 &&
+-            _drv="_drv=btrfsck fsck_drv_com" &&
++            _drv="_drv=none fsck_drv_btrfs" &&
+             return 0
+             ;;
+         *)
+@@ -104,6 +104,37 @@ fsck_drv_xfs() {
+     return $_ret
+ }
+ 
++fsck_drv_btrfs() {
++    local _ret
++
++    # fs must be cleanly mounted (and umounted) first, before attempting any
++    # btrfs tools - if this works, nothing else should be needed
++    # note, that user is always dropped into the shell, if the filesystem is
++    # not mountable or if -f flag is found among _fop
++    mkdir -p /tmp/.btrfs
++
++    info "trying to mount $_dev"
++    if mount -t btrfs "$_dev" "/tmp/.btrfs" >/dev/null 2>&1; then
++        _ret=0
++        info "btrfs: $_dev is clean"
++        umount "$_dev" >/dev/null 2>&1
++    else
++        _ret=4
++        warn "*** $_dev is unmountable"
++    fi
++    if [ $_ret -gt 0 ] || strstr "$_fop" "-f"; then
++        warn "*** Dropping you to a shell. You have"
++        warn "*** btrfsck available."
++        warn "*** Note that if btrfs didn't mount properly, it's"
++        warn "*** probably pretty serious condition."
++        emergency_shell -n "(Repair filesystem)"
++    fi
++
++    rm -r /tmp/.btrfs
++    return $_ret
++}
++
++
+ # common code for checkers that follow usual subset of options and return codes
+ fsck_drv_com() {
+     local _ret
diff --git a/0053-dracut-functions-inst_rules-do-not-check-std-dirs-fo.patch b/0053-dracut-functions-inst_rules-do-not-check-std-dirs-fo.patch
new file mode 100644
index 0000000..99488ea
--- /dev/null
+++ b/0053-dracut-functions-inst_rules-do-not-check-std-dirs-fo.patch
@@ -0,0 +1,37 @@
+From 76f5fa549c483a7a38e4757578480096b94615ac Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 22 Sep 2011 15:43:34 +0200
+Subject: [PATCH] dracut-functions: inst_rules() do not check std dirs for abs
+ path
+
+if an absolute path is given, we should not check the standard udev rule
+directories.
+---
+ dracut-functions |   14 ++++++++------
+ 1 files changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index b11e37c..18a2e89 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -474,12 +474,14 @@ inst_rules() {
+     inst_dir "/lib/udev/rules.d"
+     inst_dir "$_target"
+     for _rule in "$@"; do
+-        for r in /lib/udev/rules.d /etc/udev/rules.d; do
+-            if [[ -f $r/$_rule ]]; then
+-                _found="$r/$_rule"
+-                inst_simple "$_found"
+-            fi
+-        done
++        if [ "${rule#/}" = $rule ]; then
++            for r in /lib/udev/rules.d /etc/udev/rules.d; do
++                if [[ -f $r/$_rule ]]; then
++                    _found="$r/$_rule"
++                    inst_simple "$_found"
++                fi
++            done
++        fi
+         for r in '' ./ $dracutbasedir/rules.d/; do
+             if [[ -f ${r}$_rule ]]; then
+                 _found="${r}$_rule"
diff --git a/0054-str_replace-fix.patch b/0054-str_replace-fix.patch
new file mode 100644
index 0000000..60dfc19
--- /dev/null
+++ b/0054-str_replace-fix.patch
@@ -0,0 +1,33 @@
+From cb288154050ff5293bc9a0a72953cd2b93782abb Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Thu, 15 Sep 2011 08:45:57 +0200
+Subject: [PATCH] str_replace() fix
+
+Whitespace removal in:
+
+	out="${out}${chop# }$r"
+
+will damage certain strings, for example the following call:
+
+	str_replace ' aax aaxaa' x y
+
+would return 'aayaayaa' instead of ' aay aayaa'.
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/99base/dracut-lib.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
+index 50b1ed2..62c3bf5 100755
+--- a/modules.d/99base/dracut-lib.sh
++++ b/modules.d/99base/dracut-lib.sh
+@@ -24,7 +24,7 @@ str_replace() {
+ 
+     while strstr "${in}" "$s"; do
+         chop="${in%%$s*}"
+-        out="${out}${chop# }$r"
++        out="${out}${chop}$r"
+         in="${in#*$s}"
+     done
+     echo "${out}${in}"
diff --git a/0055-dracut-logger-bail-out-early-if-we-don-t-have-to-log.patch b/0055-dracut-logger-bail-out-early-if-we-don-t-have-to-log.patch
new file mode 100644
index 0000000..a73d63b
--- /dev/null
+++ b/0055-dracut-logger-bail-out-early-if-we-don-t-have-to-log.patch
@@ -0,0 +1,37 @@
+From 69063507d4c553cb5c4e51fb401d29eda7106351 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 22 Sep 2011 15:49:25 +0200
+Subject: [PATCH] dracut-logger: bail out early, if we don't have to log
+ anything
+
+---
+ dracut-logger |    7 +++----
+ 1 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/dracut-logger b/dracut-logger
+index d85cbaf..ce28208 100755
+--- a/dracut-logger
++++ b/dracut-logger
+@@ -271,12 +271,8 @@ _dlvl2syslvl() {
+ #   - @c INFO to @c info
+ #   - @c DEBUG and @c TRACE both to @c debug
+ _do_dlog() {
+-    [ -z "$maxloglvl" ] && return 0
+     local lvl="$1"; shift
+     local lvlc=$(_lvl2char "$lvl") || return 0
+-
+-    [ $lvl -le $maxloglvl ] || return 0
+-
+     local msg="$lvlc: $*"
+ 
+     [ $lvl -le $stdloglvl ] && echo "$msg" >&2
+@@ -307,6 +303,9 @@ _do_dlog() {
+ # dwarn "This is a warning"
+ # echo "This is a warning" | dwarn
+ dlog() {
++    [ -z "$maxloglvl" ] && return 0
++    [ $1 -le $maxloglvl ] || return 0
++
+     if [ $# -gt 1 ]; then
+         _do_dlog "$@"
+     else
diff --git a/0056-dracut-create-dev-besides-proc-sys-and-so.patch b/0056-dracut-create-dev-besides-proc-sys-and-so.patch
new file mode 100644
index 0000000..6cfc26e
--- /dev/null
+++ b/0056-dracut-create-dev-besides-proc-sys-and-so.patch
@@ -0,0 +1,24 @@
+From 7c14b3688c83b14c95bafb4989871ffac2092c42 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe at aidecoe.name>
+Date: Sun, 4 Sep 2011 16:38:35 +0200
+Subject: [PATCH] dracut: create /dev besides /proc, /sys and so
+
+How it worked without it?  The issue only manifests itself with
+initramfs integrated into kernel.
+---
+ dracut |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut b/dracut
+index 0e930c7..c9329bd 100755
+--- a/dracut
++++ b/dracut
+@@ -510,7 +510,7 @@ if [[ $kernel_only != yes ]]; then
+         fi
+     done
+ 
+-    for d in proc sys sysroot root run run/lock run/initramfs; do
++    for d in dev proc sys sysroot root run run/lock run/initramfs; do
+         if [ -h "/$d" ]; then
+             inst "/$d"
+         else
diff --git a/0057-99fs-lib-export-FSTAB_FILE-before-fsck-call.patch b/0057-99fs-lib-export-FSTAB_FILE-before-fsck-call.patch
new file mode 100644
index 0000000..b64bbeb
--- /dev/null
+++ b/0057-99fs-lib-export-FSTAB_FILE-before-fsck-call.patch
@@ -0,0 +1,26 @@
+From f07aaccd0600cefd113d1393cb4ca6a7e969a8e1 Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Tue, 6 Sep 2011 01:22:15 +0200
+Subject: [PATCH] 99fs-lib: export FSTAB_FILE before fsck call
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/99fs-lib/fs-lib.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
+index edb5852..f36299a 100755
+--- a/modules.d/99fs-lib/fs-lib.sh
++++ b/modules.d/99fs-lib/fs-lib.sh
+@@ -210,10 +210,10 @@ fsck_batch() {
+         info "    $_dev"
+     done
+ 
++    export FSTAB_FILE
+     _out="$(fsck -M -T "$@" -- -a)"
+     _ret=$?
+ 
+-    export FSTAB_FILE
+     fsck_tail
+ 
+     return $_ret
diff --git a/0058-dracut-functions-inst_rules-add-missing.patch b/0058-dracut-functions-inst_rules-add-missing.patch
new file mode 100644
index 0000000..022d6fc
--- /dev/null
+++ b/0058-dracut-functions-inst_rules-add-missing.patch
@@ -0,0 +1,22 @@
+From 08769b7f8a9efc57cd95d1f81e8aaf1a48db0d28 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Thu, 22 Sep 2011 16:14:38 +0200
+Subject: [PATCH] dracut-functions: inst_rules() add missing ""
+
+---
+ dracut-functions |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dracut-functions b/dracut-functions
+index 18a2e89..5508809 100755
+--- a/dracut-functions
++++ b/dracut-functions
+@@ -474,7 +474,7 @@ inst_rules() {
+     inst_dir "/lib/udev/rules.d"
+     inst_dir "$_target"
+     for _rule in "$@"; do
+-        if [ "${rule#/}" = $rule ]; then
++        if [ "${rule#/}" = "$rule" ]; then
+             for r in /lib/udev/rules.d /etc/udev/rules.d; do
+                 if [[ -f $r/$_rule ]]; then
+                     _found="$r/$_rule"
diff --git a/0059-90mdraid-check-precisely-for-supported-contaiers.patch b/0059-90mdraid-check-precisely-for-supported-contaiers.patch
new file mode 100644
index 0000000..3faae26
--- /dev/null
+++ b/0059-90mdraid-check-precisely-for-supported-contaiers.patch
@@ -0,0 +1,46 @@
+From db9b9f396e8d923591725f648c0a35789286254b Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Thu, 22 Sep 2011 17:09:56 +0200
+Subject: [PATCH] 90mdraid: check precisely for supported contaiers
+
+ID_FS_TYPE can be much more than just ddf/imsm/linux raid member, so
+do the proper checks.
+
+This reverts certain changes from:
+cf5891424ef026eede69606a918dadf5560095fd
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/90mdraid/65-md-incremental-imsm.rules |    5 ++++-
+ modules.d/90mdraid/module-setup.sh              |    2 +-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
+index 209b17b..ea3a889 100644
+--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
++++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
+@@ -7,7 +7,10 @@ SUBSYSTEM!="block", GOTO="md_end"
+ ENV{rd_NO_MD}=="?*", GOTO="md_end"
+ KERNEL=="md*", GOTO="md_end"
+ 
+-ENV{ID_FS_TYPE}!="*_raid_member", GOTO="md_end"
++ENV{ID_FS_TYPE}=="ddf_raid_member|isw_raid_member|linux_raid_member", GOTO="md_try"
++GOTO="md_end"
++
++LABEL="md_try"
+ ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_end"
+ ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_end"
+ 
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index 12e6739..d4a9870 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -20,7 +20,7 @@ check() {
+             check_block_and_slaves is_mdraid "$_rootdev" || return 1
+         else
+             # root is not on a block device, use the shotgun approach
+-            blkid | grep -q '"[^"]*_raid_member"' || return 1
++            blkid | egrep -q '(linux|isw|ddf)_raid' || return 1
+         fi
+     }
+ 
diff --git a/0060-90mdraid-more-thorough-64-md-raid.rules-edit.patch b/0060-90mdraid-more-thorough-64-md-raid.rules-edit.patch
new file mode 100644
index 0000000..e3e2f15
--- /dev/null
+++ b/0060-90mdraid-more-thorough-64-md-raid.rules-edit.patch
@@ -0,0 +1,25 @@
+From ae816bb6aa461eb561debc9188e69f726b31d805 Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Thu, 22 Sep 2011 17:23:21 +0200
+Subject: [PATCH] 90mdraid: more thorough 64-md-raid.rules edit
+
+Catch more variations of incremental assembly.
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/90mdraid/module-setup.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
+index d4a9870..5e819b1 100755
+--- a/modules.d/90mdraid/module-setup.sh
++++ b/modules.d/90mdraid/module-setup.sh
+@@ -54,7 +54,7 @@ install() {
+         # 65-md-inc*.rules and its fine-grained controls, or cause other problems
+         # when we explicitly don't want certain components to be incrementally
+         # assembled
+-        sed -i -e '/^ENV{ID_FS_TYPE}==.*ACTION=="add".*RUN+="\/sbin\/mdadm --incremental $env{DEVNAME}"$/d' "${initdir}/lib/udev/rules.d/64-md-raid.rules"
++        sed -ire '/RUN\+?="[[:alpha:]/]*mdadm[[:blank:]]+(--incremental|-I)[[:blank:]]+(\$env\{DEVNAME\}|\$tempnode)"/d' "${initdir}/lib/udev/rules.d/64-md-raid.rules"
+     fi
+ 
+     inst_rules "$moddir/65-md-incremental-imsm.rules"
diff --git a/0061-90mdraid-adjust-dev-md-loops.patch b/0061-90mdraid-adjust-dev-md-loops.patch
new file mode 100644
index 0000000..a38299b
--- /dev/null
+++ b/0061-90mdraid-adjust-dev-md-loops.patch
@@ -0,0 +1,53 @@
+From 9fc3f0452023c42c235c3312ad311243e7f900a2 Mon Sep 17 00:00:00 2001
+From: Michal Soltys <soltys at ziu.info>
+Date: Thu, 22 Sep 2011 17:16:39 +0200
+Subject: [PATCH] 90mdraid: adjust /dev/md loops
+
+Include '_' to also handle old partitionable arrays (pre-2.6.28).
+
+Signed-off-by: Michal Soltys <soltys at ziu.info>
+---
+ modules.d/90mdraid/65-md-incremental-imsm.rules |    2 +-
+ modules.d/90mdraid/mdraid-cleanup.sh            |    2 +-
+ modules.d/90mdraid/mdraid_start.sh              |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
+index ea3a889..2a80700 100644
+--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
++++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
+@@ -15,7 +15,7 @@ ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_end"
+ ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_end"
+ 
+ # already done ?
+-PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
++PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9_]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
+     GOTO="md_end"
+ 
+ # for native arrays - array's uuid has to be specified
+diff --git a/modules.d/90mdraid/mdraid-cleanup.sh b/modules.d/90mdraid/mdraid-cleanup.sh
+index 8fc54e2..3ffa2d3 100755
+--- a/modules.d/90mdraid/mdraid-cleanup.sh
++++ b/modules.d/90mdraid/mdraid-cleanup.sh
+@@ -5,7 +5,7 @@
+ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+ 
+ containers=""
+-for md in /dev/md[0-9]*; do
++for md in /dev/md[0-9_]*; do
+     [ -b "$md" ] || continue
+     udevinfo="$(udevadm info --query=env --name=$md)"
+     strstr "$udevinfo" "DEVTYPE=partition" && continue
+diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
+index be5a3ce..f79f16e 100755
+--- a/modules.d/90mdraid/mdraid_start.sh
++++ b/modules.d/90mdraid/mdraid_start.sh
+@@ -8,7 +8,7 @@ _md_force_run() {
+     local _path_s
+     local _path_d
+     # try to force-run anything not running yet
+-    for md in /dev/md[0-9]*; do
++    for md in /dev/md[0-9_]*; do
+         [ -b "$md" ] || continue
+         _udevinfo="$(udevadm info --query=env --name="$md")"
+         strstr "$_udevinfo" "MD_LEVEL=container" && continue
diff --git a/0064-order-mdadm-and-lvm-timeout-operations.patch b/0064-order-mdadm-and-lvm-timeout-operations.patch
new file mode 100644
index 0000000..6426bfd
--- /dev/null
+++ b/0064-order-mdadm-and-lvm-timeout-operations.patch
@@ -0,0 +1,36 @@
+From 77a57d5eafc3e46d01b196312d5dd4f28e0e8010 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 4 Oct 2011 13:03:45 +0200
+Subject: [PATCH] order mdadm and lvm timeout operations
+
+---
+ modules.d/90lvm/64-lvm.rules                    |    2 +-
+ modules.d/90mdraid/65-md-incremental-imsm.rules |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules
+index 487d08a..ab827a9 100644
+--- a/modules.d/90lvm/64-lvm.rules
++++ b/modules.d/90lvm/64-lvm.rules
+@@ -13,7 +13,7 @@ PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/dm-[0-9]*; do [ -e $$i ] &&
+     GOTO="lvm_end"
+ 
+ RUN+="/sbin/initqueue --settled --onetime --unique /sbin/lvm_scan"
+-RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/lvm_scan --partial"
++RUN+="/sbin/initqueue --timeout --name 51-lvm_scan --onetime --unique /sbin/lvm_scan --partial"
+ RUN+="/bin/sh -c '>/tmp/.lvm_scan-%k;'"
+ 
+ LABEL="lvm_end"
+diff --git a/modules.d/90mdraid/65-md-incremental-imsm.rules b/modules.d/90mdraid/65-md-incremental-imsm.rules
+index 2a80700..139a599 100644
+--- a/modules.d/90mdraid/65-md-incremental-imsm.rules
++++ b/modules.d/90mdraid/65-md-incremental-imsm.rules
+@@ -27,7 +27,7 @@ PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9_]*; do [ -e $$i ] &&
+ ENV{DEVTYPE}!="partition", \
+     RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
+ 
+-RUN+="/sbin/initqueue --timeout --onetime --unique /sbin/mdraid_start"
++RUN+="/sbin/initqueue --timeout --name 50-mdraid_start --onetime --unique /sbin/mdraid_start"
+ 
+ # if rd_MDADMCONF is set, do not assemble incrementally;
+ # defer conf-based assembly until the udev queue is settled
diff --git a/0065-90mdraid-mdraid_start.sh-fix-path-to-md-sysfs.patch b/0065-90mdraid-mdraid_start.sh-fix-path-to-md-sysfs.patch
new file mode 100644
index 0000000..35a7ec4
--- /dev/null
+++ b/0065-90mdraid-mdraid_start.sh-fix-path-to-md-sysfs.patch
@@ -0,0 +1,22 @@
+From e0e9221e23f783ce670349df52da46bf6dc05c14 Mon Sep 17 00:00:00 2001
+From: Harald Hoyer <harald at redhat.com>
+Date: Tue, 4 Oct 2011 13:06:33 +0200
+Subject: [PATCH] 90mdraid/mdraid_start.sh: fix path to md sysfs
+
+---
+ modules.d/90mdraid/mdraid_start.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
+index f79f16e..f4b7ad0 100755
+--- a/modules.d/90mdraid/mdraid_start.sh
++++ b/modules.d/90mdraid/mdraid_start.sh
+@@ -14,7 +14,7 @@ _md_force_run() {
+         strstr "$_udevinfo" "MD_LEVEL=container" && continue
+         strstr "$_udevinfo" "DEVTYPE=partition" && continue
+ 
+-        _path_s="$(udevadm info -q path -n "$md")/md/array_state"
++        _path_s="/sys/$(udevadm info -q path -n "$md")/md/array_state"
+         [ ! -r "$_path_s" ] && continue
+ 
+         # inactive ?
diff --git a/dracut.spec b/dracut.spec
index 3353540..b456a0b 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -8,7 +8,7 @@
 
 Name: dracut
 Version: 013
-Release: 12%{?dist}
+Release: 13%{?dist}
 
 Summary: Initramfs generator using udev
 %if 0%{?fedora} || 0%{?rhel} > 6
@@ -32,11 +32,30 @@ Patch27: 0027-95udev-rules-add-input_id.patch
 Patch34: 0034-99base-init-do-not-fail-when-importing-the-original-.patch
 Patch37: 0037-dmsquash-live-root-use-blkid-to-determine-fstype-of-.patch
 Patch38: 0038-dmsquash-live-root-load-filesystem-modules-before-mo.patch
-Patch39: 0039-90dmsquash-live-do-not-symlink-to-dev-live.patch
 Patch40: 0040-99base-init-remove-dev-root-helper-symlink.patch
 Patch41: 0041-Do-not-use-run-udev-rules.d-for-udev-rules.patch
 Patch42: 0042-99base-init-mount-securityfs-with-source-securityfs-.patch
 Patch43: 0043-mount-securityfs-in-a-seperate-dracut-module.patch
+Patch44: 0044-mount-securityfs-in-a-seperate-dracut-module.patch
+Patch45: 0045-90mdraid-adjust-stock-mdadm-udev-rules.patch
+Patch46: 0046-90mdraid-containers-are-not-runnable.patch
+Patch47: 0047-90mdraid-fix-adjust-mdraid-cleanup.patch
+Patch48: 0048-90mdraid-fix-adjust-force-run-script.patch
+Patch49: 0049-90-md-dm-raid-recognize-ddf-container.patch
+Patch50: 0050-90mdraid-fix-adjust-65-md-rules-and-related-scripts.patch
+Patch51: 0051-TEST-40-NBD-relaxed-check-on-ext3-filesystem-options.patch
+Patch52: 0052-99fs-lib-fs-lib.sh-fsck-btrfs-via-mounting-like-xfs.patch
+Patch53: 0053-dracut-functions-inst_rules-do-not-check-std-dirs-fo.patch
+Patch54: 0054-str_replace-fix.patch
+Patch55: 0055-dracut-logger-bail-out-early-if-we-don-t-have-to-log.patch
+Patch56: 0056-dracut-create-dev-besides-proc-sys-and-so.patch
+Patch57: 0057-99fs-lib-export-FSTAB_FILE-before-fsck-call.patch
+Patch58: 0058-dracut-functions-inst_rules-add-missing.patch
+Patch59: 0059-90mdraid-check-precisely-for-supported-contaiers.patch
+Patch60: 0060-90mdraid-more-thorough-64-md-raid.rules-edit.patch
+Patch61: 0061-90mdraid-adjust-dev-md-loops.patch
+Patch64: 0064-order-mdadm-and-lvm-timeout-operations.patch
+Patch65: 0065-90mdraid-mdraid_start.sh-fix-path-to-md-sysfs.patch
 
 BuildArch: noarch
 BuildRequires: dash bash
@@ -179,11 +198,31 @@ This package contains tools to assemble the local initrd and host configuration.
 %patch34 -p1
 %patch37 -p1
 %patch38 -p1
-#%patch39 -p1
 %patch40 -p1
 %patch41 -p1
 %patch42 -p1
 %patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+%patch53 -p1
+%patch54 -p1
+%patch55 -p1
+%patch56 -p1
+%patch57 -p1
+%patch58 -p1
+%patch59 -p1
+%patch60 -p1
+%patch61 -p1
+%patch64 -p1
+%patch65 -p1
+
 chmod a+x modules.d/*/*.sh
 find . -name *.orig -print0 | xargs -0 rm -f
 %build
@@ -324,6 +363,15 @@ rm -rf $RPM_BUILD_ROOT
 %dir /var/lib/dracut/overlay
 
 %changelog
+* Tue Oct 04 2011 Harald Hoyer <harald at redhat.com> 013-13
+- fixed mdraid container handling
+Resolves: rhbz#743240
+
+* Thu Sep 22 2011 Harald Hoyer <harald at redhat.com> 013-13
+- fixed mdraid issues
+- fixed btrfsck
+Resolves: rhbz#735602
+
 * Wed Sep 21 2011 Harald Hoyer <harald at redhat.com> 013-12
 - removed patch backup files
 - reintroduced /dev/live


More information about the scm-commits mailing list