diff --git a/src/volser/vsprocs.c b/src/volser/vsprocs.c index fa44258dec..6d3ac5e681 100644 --- a/src/volser/vsprocs.c +++ b/src/volser/vsprocs.c @@ -1790,6 +1790,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) { @@ -1995,12 +1996,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);