From: Derrick Brashear Date: Thu, 24 Apr 2008 23:44:01 +0000 (+0000) Subject: vos-move-avoid-spurious-unlock-20080424 X-Git-Tag: openafs-stable-1_4_12pre1~88 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=9798191bdcca1a89da4e3e8dc4bfff17eeab01cf;p=packages%2Fo%2Fopenafs.git vos-move-avoid-spurious-unlock-20080424 LICENSE IPL10 lightly modified from what Bren Mills submitted; the second unlock call after mfail may be entirely useless. (cherry picked from commit b87935a4c5f26357e29f1db46eff8b1cf9185f3b) Change-Id: I82478dabe1df66fc261e8d7c64bb898b3a60d88b Reviewed-on: http://gerrit.openafs.org/912 Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear --- diff --git a/src/volser/vsprocs.c b/src/volser/vsprocs.c index c2fe6c8cd..38571e8aa 100644 --- a/src/volser/vsprocs.c +++ b/src/volser/vsprocs.c @@ -1852,6 +1852,7 @@ UV_MoveVolume2(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart, ubik_VL_ReleaseLock(cstruct, 0, afromvol, -1, (LOCKREL_OPCODE | LOCKREL_AFSID | LOCKREL_TIMESTAMP)); VDONE; + islocked = 0; } if (clonetid) { @@ -2057,12 +2058,14 @@ UV_MoveVolume2(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart, } /* unlock VLDB entry */ - VPRINT1("Recovery: Releasing lock on VLDB entry for volume %u ...", - afromvol); - ubik_VL_ReleaseLock(cstruct, 0, afromvol, -1, - (LOCKREL_OPCODE | LOCKREL_AFSID | LOCKREL_TIMESTAMP)); - VDONE; - + if (islocked) { + VPRINT1("Recovery: Releasing lock on VLDB entry for volume %u ...", + afromvol); + ubik_VL_ReleaseLock(cstruct, 0, afromvol, -1, + (LOCKREL_OPCODE | LOCKREL_AFSID | LOCKREL_TIMESTAMP)); + VDONE; + islocked = 0; + } done: /* routine cleanup */ if (volName) free(volName);