]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
vos-move-avoid-spurious-unlock-20080424
authorDerrick Brashear <shadow@dementia.org>
Thu, 24 Apr 2008 23:44:01 +0000 (23:44 +0000)
committerDerrick Brashear <shadow|account-1000005@unknown>
Thu, 17 Dec 2009 06:18:29 +0000 (22:18 -0800)
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 <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/volser/vsprocs.c

index c2fe6c8cd5d72cc14fb6055202ffaf6ab88f4263..38571e8aa90b69a75d8c63597baede87a7714629 100644 (file)
@@ -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);