disconnected-dont-double-dequeue-shadow-removal-20090323
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Mon, 23 Mar 2009 18:59:53 +0000 (18:59 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 23 Mar 2009 18:59:53 +0000 (18:59 +0000)
LICENSE IPL10
FIXES 124496

queue_Remove twice tends to cause things like panics

src/afs/afs_disconnected.c

index 68486c5..716dfad 100644 (file)
@@ -1317,10 +1317,8 @@ afs_DisconDiscardAllShadows(int squash, struct AFS_UCRED *acred) {
        if (squash)
           afs_ResetVCache(tvc, acred);
 
-       ObtainWriteLock(&afs_disconDirtyLock, 709);
-       QRemove(&tvc->shadowq);
-
        ReleaseWriteLock(&tvc->lock);
+       ObtainWriteLock(&afs_disconDirtyLock, 709);
     }                          /* while (tvc) */
 }