]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
vos: volume lock not released on convertROtoRW error
authorMark Vitale <mvitale@sinenomine.net>
Tue, 8 May 2012 19:03:46 +0000 (15:03 -0400)
committerDerrick Brashear <shadow@dementix.org>
Tue, 29 May 2012 00:32:26 +0000 (17:32 -0700)
If an error occurs during convertROtoRW, the volume lock may
not be released.

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>
(cherry picked from commit 33eff6597facc01bbcd5266fb83c8a6bfa40dfa8)

Change-Id: I0b87fd3b99f178d99f997032c14673def111c1de
Reviewed-on: http://gerrit.openafs.org/7499
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/volser/vos.c

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