summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormadduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464>2006-08-02 19:11:46 +0000
committermadduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464>2006-08-02 19:11:46 +0000
commit9a23517aa24c0f5c857cd8a8ce540c6865301fcd (patch)
tree5c0b73d62572f9c66c1576648c3b087ff6f8c619
parent5c0ef2266d1a190d029eab5c479e91692b29dc89 (diff)
* Added safety net to prevent endless loops in RAID autodetection. Now just
which can get in the way of mdadm (also see next item). * Added a workaround to the initramfs hook to deal with the problem with /dev/md/X device nodes when /dev/mdX is also present and version-0 superblocks are in use (closes: #381181).
-rw-r--r--debian/changelog9
-rw-r--r--debian/initramfs/hook10
-rw-r--r--debian/mdadm.udev4
3 files changed, 18 insertions, 5 deletions
diff --git a/debian/changelog b/debian/changelog
index 1cd56dac..640c2b26 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,12 +11,15 @@ mdadm (2.5.2-10) UNRELEASED; urgency=low
The autodetection code now doesn't care about the actual name of the array
device, but instead only insists that it exists, is a block device, and
recognised as an array by mdadm (mdadm --detail).
- * Add safety net to prevent endless loops in RAID autodetection. Now just
+ * Added safety net to prevent endless loops in RAID autodetection. Now just
falls back to starting all arrays from the initramfs if it fails to
determine an acceptable array for the / filesystem in three tries
(see #381007).
* Added udev rules file to prevent udev from ever creating md device nodes,
- which can get in the way of mdadm.
+ which can get in the way of mdadm (also see next item).
+ * Added a workaround to the initramfs hook to deal with the problem with
+ /dev/md/X device nodes when /dev/mdX is also present and version-0
+ superblocks are in use (closes: #381181).
* checkarray: correctly recognise when the kernel is too old for parity
checks, or when there are no redundant arrays present (closes: #380746).
* checkarray: now supports -s|--status switch to query parity check status
@@ -25,7 +28,7 @@ mdadm (2.5.2-10) UNRELEASED; urgency=low
* mkconf: now also outputs MAILADDR.
* Added /usr/share/doc/mdadm/FAQ to answer some FAQs.
- -- martin f. krafft <madduck@debian.org> Wed, 2 Aug 2006 19:16:18 +0100
+ -- martin f. krafft <madduck@debian.org> Wed, 2 Aug 2006 20:10:00 +0100
mdadm (2.5.2-9) unstable; urgency=low
diff --git a/debian/initramfs/hook b/debian/initramfs/hook
index 8152b778..64ab5502 100644
--- a/debian/initramfs/hook
+++ b/debian/initramfs/hook
@@ -47,6 +47,16 @@ if [ "$INITRDSTART" != none ]; then
eval $(mdadm --examine --scan --config=partitions \
| while read a dev level num uuid; do
+ if expr "$dev" : '/dev/md[0-9].*' >/dev/null; then
+ devfs_name="/dev/md/${dev#/dev/md}"
+ if [ -b "$dev" ] && [ -b "$devfs_name" ] \
+ && expr "$INITRDSTART" : ".*${devfs_name}.*" >/dev/null; then
+ echo "W: mdadm: both $dev and $devfs_name exist, and $devfs_name appears to be used." >&2
+ echo "W: mdadm: applying workaround for mdadm bug, don't worry! (see #381181)" >&2
+ dev="$devfs_name"
+ fi
+ fi
+
if [ "$INITRDSTART" = all ] || expr "$INITRDSTART" : ".*${dev}.*" >/dev/null; then
DEVS="$DEVS ${dev}=${uuid#UUID=}"
LEVELS="$LEVELS ${level#level=}"
diff --git a/debian/mdadm.udev b/debian/mdadm.udev
index 50ed5bd5..3753f7ab 100644
--- a/debian/mdadm.udev
+++ b/debian/mdadm.udev
@@ -1,3 +1,3 @@
# mdadm creates its own device nodes, and it gets really annoyed when someone
-# creates /dev/mdX nodes and it's not supposed to use them
-KERNEL="md[0-9]*", NAME=""
+# creates /dev/mdX nodes and it's not supposed to use them. see #381181.
+KERNEL=="md[0-9]*", NAME="", SYMLINK=""