summaryrefslogtreecommitdiff
path: root/Manage.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-10-25 18:20:49 +1100
committerNeilBrown <neilb@suse.de>2008-10-25 18:20:49 +1100
commitb3d3195538e315b3863235731112eee7398d4340 (patch)
tree7decf7dd32fe805c1206efc93e54fea1f23af378 /Manage.c
parent11cd8b79c0690bf39b40a25352f86a82a838622a (diff)
Allow WRITEMOSTLY to be cleared on --readd using --readwrite.
Previously it was possible to set the WRITEMOSTLY flag when adding a device to an array, but not to clear the flag when re-adding. This is now possible with --readwrite. Signed-off-by: NeilBrown <neilb@suse.de>
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 7b3fabe1..160778ed 100644
--- a/Manage.c
+++ b/Manage.c
@@ -413,8 +413,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);
@@ -452,7 +454,7 @@ int Manage_subdevs(char *devname, int fd,
disc.number =j;
disc.state = 0;
if (array.not_persistent==0) {
- if (dv->writemostly)
+ if (dv->writemostly == 1)
disc.state |= 1 << MD_DISK_WRITEMOSTLY;
tst->ss->add_to_super(tst, &disc);
if (tst->ss->write_init_super(tst, &disc,
@@ -487,7 +489,7 @@ int Manage_subdevs(char *devname, int fd,
break;
}
}
- if (dv->writemostly)
+ if (dv->writemostly == 1)
disc.state |= (1 << MD_DISK_WRITEMOSTLY);
if (ioctl(fd,ADD_NEW_DISK, &disc)) {
fprintf(stderr, Name ": add new device failed for %s as %d: %s\n",