From: Mark Vitale Date: Tue, 8 May 2012 14:01:12 +0000 (-0400) Subject: vos: convertROtoRW may create two RW volumes X-Git-Tag: upstream/1.6.2_pre2^2~171 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=f07737a27edacceb2a0e59abe9584df6f6f5e00a;p=packages%2Fo%2Fopenafs.git 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. Reviewed-on: http://gerrit.openafs.org/7385 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 9a728fd86c7add13e15dfa0d3062fa94cc77c53f) Change-Id: I7e4eaf0ffefedb3c665e28656a75959eb8677071 Reviewed-on: http://gerrit.openafs.org/7497 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/volser/vos.c b/src/volser/vos.c index d8ea2d2a9..e5197e2c5 100644 --- a/src/volser/vos.c +++ b/src/volser/vos.c @@ -5575,8 +5575,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, @@ -5588,7 +5589,8 @@ ConvertRO(struct cmd_syndesc *as, void *arock) roindex = i; roserver = entry.serverNumber[i]; ropartition = entry.serverPartition[i]; - break; + if (rwserver) + break; } } }