summaryrefslogtreecommitdiff
path: root/Detail.c
diff options
context:
space:
mode:
authorSong Liu <songliubraving@fb.com>2016-08-11 17:14:13 -0700
committerJes Sorensen <Jes.Sorensen@redhat.com>2016-08-12 10:58:58 -0400
commit690e46c32069efd6d8da667f2a23bdb00c233bda (patch)
tree47146cd891cbebea1a4db736ebbf3eb9367c62b7 /Detail.c
parentff3c881f84f63d805cfd9bc05772a33a25c8bd6f (diff)
downloadmdadm-690e46c32069efd6d8da667f2a23bdb00c233bda.tar.gz
mdadm: put journal device in right place of --detail
When there is failed HDDs, journal device showed in wrong place of --detail: Number Major Minor RaidDevice State 4 8 24 - journal /dev/sdb8 1 8 18 1 active sync /dev/sdb2 2 8 19 2 active sync /dev/sdb3 3 8 21 3 active sync /dev/sdb5 0 8 17 - faulty /dev/sdb1 This patch fixed the output as: Number Major Minor RaidDevice State - 0 0 0 removed 1 8 18 1 active sync /dev/sdb2 2 8 19 2 active sync /dev/sdb3 3 8 21 3 active sync /dev/sdb5 0 8 17 - faulty /dev/sdb1 4 8 24 - journal /dev/sdb8 Reported-by: Yi Zhang <yizhan@redhat.com> Signed-off-by: Song Liu <songliubraving@fb.com> Signed-off-by: Shaohua Li <shli@fb.com> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Diffstat (limited to 'Detail.c')
-rw-r--r--Detail.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Detail.c b/Detail.c
index 7a984c8..925e479 100644
--- a/Detail.c
+++ b/Detail.c
@@ -323,7 +323,8 @@ int Detail(char *dev, struct context *c)
if (disk.major == 0 && disk.minor == 0)
continue;
if (disk.raid_disk >= 0 && disk.raid_disk < array.raid_disks
- && disks[disk.raid_disk*2].state == (1<<MD_DISK_REMOVED))
+ && disks[disk.raid_disk*2].state == (1<<MD_DISK_REMOVED)
+ && ((disk.state & (1<<MD_DISK_JOURNAL)) == 0))
disks[disk.raid_disk*2] = disk;
else if (disk.raid_disk >= 0 && disk.raid_disk < array.raid_disks
&& disks[disk.raid_disk*2+1].state == (1<<MD_DISK_REMOVED)