vos: volume lock not released on convertROtoRW error

If an error occurs during convertROtoRW, the volume lock may
not be released.

Change-Id: Ic03af00676de836cade4e39a743b234a0dc9b6cf
Reviewed-on: http://gerrit.openafs.org/7389
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
This commit is contained in:
Mark Vitale 2012-05-08 15:03:46 -04:00 committed by Derrick Brashear
parent 38ebd79baf
commit 33eff6597f

View File

@ -5626,7 +5626,7 @@ ConvertRO(struct cmd_syndesc *as, void *arock)
"Converting RO volume %lu to RW volume failed with code %d\n", "Converting RO volume %lu to RW volume failed with code %d\n",
(unsigned long)volid, code); (unsigned long)volid, code);
PrintError("convertROtoRW ", code); PrintError("convertROtoRW ", code);
return -1; goto error_exit;
} }
entry.serverFlags[roindex] = ITSRWVOL; entry.serverFlags[roindex] = ITSRWVOL;
entry.flags |= RW_EXISTS; entry.flags |= RW_EXISTS;
@ -5661,6 +5661,7 @@ ConvertRO(struct cmd_syndesc *as, void *arock)
code); code);
} }
error_exit:
vcode = UV_LockRelease(entry.volumeId[RWVOL]); vcode = UV_LockRelease(entry.volumeId[RWVOL]);
if (vcode) { if (vcode) {
fprintf(STDERR, fprintf(STDERR,