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,
(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);