linux-vcache-extra-ref-unneeded-20060126
authorChas Williams <chas@cmf.nrl.navy.mil>
Thu, 26 Jan 2006 18:55:18 +0000 (18:55 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 26 Jan 2006 18:55:18 +0000 (18:55 +0000)
FIXES 25829

the dynamic/system inode version of the linux client already keeps an
extra reference when the inode is on the vcache list. the inode/vnode
should not go away while we are trying to flush the dcache children.

src/afs/afs_vcache.c

index e67dfe7..137c6bf 100644 (file)
@@ -679,7 +679,6 @@ afs_NewVCache(struct VenusFid *afid, struct server *serverp)
            if (tvc != afs_globalVp && VREFCOUNT(tvc) > 1 && tvc->opens == 0) {
                 struct dentry *dentry;
                 struct list_head *cur, *head;
-                AFS_FAST_HOLD(tvc);
                 AFS_GUNLOCK();
 #if defined(AFS_LINUX24_ENV)
                 spin_lock(&dcache_lock);
@@ -715,7 +714,6 @@ restart:
 #endif
            inuse:
                AFS_GLOCK();
-               AFS_FAST_RELE(tvc);
            }
 #endif