summaryrefslogtreecommitdiff
path: root/super0.c
diff options
context:
space:
mode:
authorMichael Tokarev <mjt@tls.msk.ru>2014-09-20 08:50:44 +0400
committerMichael Tokarev <mjt@tls.msk.ru>2014-09-20 08:50:44 +0400
commit20d0ba040d767361c1d0c8a825b2a5e8bfdb39a6 (patch)
tree687a5eda9314ea76da64e234ba269d84345f7efe /super0.c
parentfef4f4267e21104887eba03b8ddec5e6a3fc9747 (diff)
parentfed12d436b9803ad97d1f11cc8f312ab08c3a659 (diff)
Merge tag 'mdadm-3.3.2' into debian
Release mdadm-3.3.2 Minor bugfix/stability release.
Diffstat (limited to 'super0.c')
-rw-r--r--super0.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/super0.c b/super0.c
index 3218377f..1c203927 100644
--- a/super0.c
+++ b/super0.c
@@ -805,9 +805,8 @@ static int add_to_super0(struct supertype *st, mdu_disk_info_t *dinfo,
dk->major = dinfo->major;
dk->minor = dinfo->minor;
dk->raid_disk = dinfo->raid_disk;
- dk->state = dinfo->state;
- /* In case our source disk was writemostly, don't copy that bit */
- dk->state &= ~(1<<MD_DISK_WRITEMOSTLY);
+ dk->state = dinfo->state & ((1<<MD_DISK_ACTIVE) |
+ (1<<MD_DISK_SYNC));
sb->this_disk = sb->disks[dinfo->number];
sb->sb_csum = calc_sb0_csum(sb);
@@ -887,7 +886,7 @@ static int write_init_super0(struct supertype *st)
for (di = st->info ; di && ! rv ; di = di->next) {
- if (di->disk.state == 1)
+ if (di->disk.state & (1 << MD_DISK_FAULTY))
continue;
if (di->fd == -1)
continue;