Re: [mdadm git pull] imsm fixes and general external metadata updates
From: Dan Williams <hidden>
Date: 2009-01-23 22:51:56
Subsystem:
the rest · Maintainer:
Linus Torvalds
On Wed, 2009-01-21 at 15:20 -0700, Dan Williams wrote:
Hi Neil,
The following changes since commit 78fbcc10312649f2f4f88283e3f19dce9b205733:
NeilBrown (1):
Merge branch 'master' into scratch-3.0
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/djbw/mdadm.git develSeems you have not pulled yet, I have appended an important fix. Thanks, Dan --- imsm: fix failed disks are allowed back into the container From: Dan Williams <redacted> Failed disks do not have valid serial numbers which means we will not pick up the 'failed' status bit from the metadata entry. Check for dl->index == -2 to prevent failed disks from being incorporated into the container. Signed-off-by: Dan Williams <redacted> --- super-intel.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/super-intel.c b/super-intel.c
index 0a7c34a..5c9f413 100644
--- a/super-intel.c
+++ b/super-intel.c@@ -1195,8 +1195,11 @@ static void getinfo_super_imsm(struct supertype *st, struct mdinfo *info) info->component_size = reserved; s = disk->status; info->disk.state = s & CONFIGURED_DISK ? (1 << MD_DISK_ACTIVE) : 0; - info->disk.state |= s & FAILED_DISK ? (1 << MD_DISK_FAULTY) : 0; info->disk.state |= s & SPARE_DISK ? 0 : (1 << MD_DISK_SYNC); + if (s & FAILED_DISK || super->disks->index == -2) { + info->disk.state |= 1 << MD_DISK_FAULTY; + info->disk.raid_disk = -2; + } } /* only call uuid_from_super_imsm when this disk is part of a populated container,