reorder vcache references in discondiscardallshadows
authorDerrick Brashear <shadow@dementia.org>
Wed, 4 Aug 2010 13:02:54 +0000 (09:02 -0400)
committerDerrick Brashear <shadow@dementia.org>
Wed, 4 Aug 2010 14:25:32 +0000 (07:25 -0700)
reset the vcache before we (nominally, it's still under a lock)
discard it. remove superfluous shadow clearing.

Caught by Simon Wilkinson

Change-Id: I55b91fa4f2f92a8b6fd1f8117c2448f7a7d1d98a
Reviewed-on: http://gerrit.openafs.org/2512
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/afs/afs_disconnected.c

index 46a665c..ff5e978 100644 (file)
@@ -1312,13 +1312,11 @@ afs_DisconDiscardAllShadows(int squash, afs_ucred_t *acred)
        ReleaseWriteLock(&afs_disconDirtyLock);
        ObtainWriteLock(&tvc->lock, 706);
 
-       afs_DeleteShadowDir(tvc);
-       tvc->f.shadow.vnode = 0;
-       tvc->f.shadow.unique = 0;
-
        if (squash)
           afs_ResetVCache(tvc, acred);
 
+       afs_DeleteShadowDir(tvc);
+
        ReleaseWriteLock(&tvc->lock);
        ObtainWriteLock(&afs_disconDirtyLock, 709);
     }                          /* while (tvc) */