vos: convertROtoRW may create two RW volumes

If the RW volume is listed after the RO convert target in the VLDB,
the code failed to detect that an RW is already present and would
create a second RW volume.

Change-Id: Ia77004214c4d1b18699b5527bc1fc928e8e1143d
Reviewed-on: http://gerrit.openafs.org/7385
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
This commit is contained in:
Mark Vitale 2012-05-08 10:01:12 -04:00 committed by Derrick Brashear
parent 97581f7510
commit 9a728fd86c

View File

@ -5564,8 +5564,9 @@ ConvertRO(struct cmd_syndesc *as, void *arock)
rwindex = i;
rwserver = entry.serverNumber[i];
rwpartition = entry.serverPartition[i];
}
if (entry.serverFlags[i] & ITSROVOL) {
if (roserver)
break;
} else if ((entry.serverFlags[i] & ITSROVOL) && !roserver) {
same = VLDB_IsSameAddrs(server, entry.serverNumber[i], &code);
if (code) {
fprintf(STDERR,
@ -5577,7 +5578,8 @@ ConvertRO(struct cmd_syndesc *as, void *arock)
roindex = i;
roserver = entry.serverNumber[i];
ropartition = entry.serverPartition[i];
break;
if (rwserver)
break;
}
}
}