summaryrefslogtreecommitdiff
path: root/Manage.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-10-27 10:10:08 +1100
committerNeilBrown <neilb@suse.de>2008-10-27 10:10:08 +1100
commitb01b06bda8dce132e6eb3c3826ad0f4b94ebdf43 (patch)
tree6344c839508876df740b6fd7326ef2323c6f8142 /Manage.c
parent4abe6b708687f9982bfbc0629e1070bf49714fa3 (diff)
parentb3d3195538e315b3863235731112eee7398d4340 (diff)
Merge branch 'master' into devel-3.0
Conflicts: Create.c Manage.c
Diffstat (limited to 'Manage.c')
-rw-r--r--Manage.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/Manage.c b/Manage.c
index 0018d8d3..6b9825b4 100644
--- a/Manage.c
+++ b/Manage.c
@@ -516,8 +516,10 @@ int Manage_subdevs(char *devname, int fd,
disc.number = mdi.disk.number;
disc.raid_disk = mdi.disk.raid_disk;
disc.state = mdi.disk.state;
- if (dv->writemostly)
+ if (dv->writemostly == 1)
disc.state |= 1 << MD_DISK_WRITEMOSTLY;
+ if (dv->writemostly == 2)
+ disc.state &= ~(1 << MD_DISK_WRITEMOSTLY);
if (ioctl(fd, ADD_NEW_DISK, &disc) == 0) {
if (verbose >= 0)
fprintf(stderr, Name ": re-added %s\n", dv->devname);
@@ -556,7 +558,7 @@ int Manage_subdevs(char *devname, int fd,
disc.state = 0;
if (array.not_persistent==0 || tst->ss->external) {
int dfd;
- if (dv->writemostly)
+ if (dv->writemostly == 1)
disc.state |= 1 << MD_DISK_WRITEMOSTLY;
dfd = open(dv->devname, O_RDWR | O_EXCL|O_DIRECT);
tst->ss->add_to_super(tst, &disc, dfd,
@@ -596,7 +598,7 @@ int Manage_subdevs(char *devname, int fd,
break;
}
}
- if (dv->writemostly)
+ if (dv->writemostly == 1)
disc.state |= (1 << MD_DISK_WRITEMOSTLY);
if (tst->ss->external) {
/* add a disk to an external metadata container