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.
This commit is contained in:
Derrick Brashear 2008-04-24 23:44:01 +00:00
parent 088eb9158b
commit b87935a4c5

View File

@ -1790,6 +1790,7 @@ UV_MoveVolume2(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart,
ubik_VL_ReleaseLock(cstruct, 0, afromvol, -1, ubik_VL_ReleaseLock(cstruct, 0, afromvol, -1,
(LOCKREL_OPCODE | LOCKREL_AFSID | LOCKREL_TIMESTAMP)); (LOCKREL_OPCODE | LOCKREL_AFSID | LOCKREL_TIMESTAMP));
VDONE; VDONE;
islocked = 0;
} }
if (clonetid) { if (clonetid) {
@ -1995,12 +1996,14 @@ UV_MoveVolume2(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart,
} }
/* unlock VLDB entry */ /* unlock VLDB entry */
if (islocked) {
VPRINT1("Recovery: Releasing lock on VLDB entry for volume %u ...", VPRINT1("Recovery: Releasing lock on VLDB entry for volume %u ...",
afromvol); afromvol);
ubik_VL_ReleaseLock(cstruct, 0, afromvol, -1, ubik_VL_ReleaseLock(cstruct, 0, afromvol, -1,
(LOCKREL_OPCODE | LOCKREL_AFSID | LOCKREL_TIMESTAMP)); (LOCKREL_OPCODE | LOCKREL_AFSID | LOCKREL_TIMESTAMP));
VDONE; VDONE;
islocked = 0;
}
done: /* routine cleanup */ done: /* routine cleanup */
if (volName) if (volName)
free(volName); free(volName);