macos: don't attempt finalize fixup on root vnode
authorDerrick Brashear <shadow@dementia.org>
Tue, 26 Jul 2011 04:52:18 +0000 (00:52 -0400)
committerDerrick Brashear <shadow@dementia.org>
Tue, 26 Jul 2011 04:58:57 +0000 (21:58 -0700)
because of how the root fid is created we can end up being dumb.
turns out we never want to bypass doing the full pass for root anyway
so just force fixup to not happen.

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

src/afs/DARWIN/osi_vnodeops.c

index 0d096fd..5160c87 100644 (file)
@@ -2164,8 +2164,8 @@ afs_darwin_finalizevnode(struct vcache *avc, struct vnode *dvp,
     ovp = AFSTOV(avc);
 
     /* if the type changed, we still need to do a fixup, for bulkstat */
-    if (vnode_vtype(ovp) == avc->f.m.Type && !(avc->f.states & CDeadVnode)
-       && vnode_vtype(ovp) != VNON)
+    if (!isroot && (vnode_vtype(ovp) == avc->f.m.Type &&
+                   !(avc->f.states & CDeadVnode) && vnode_vtype(ovp) != VNON)
     {
        AFS_GUNLOCK();
 #if 0 /* unsupported */