From: Chas Williams Date: Thu, 18 Aug 2005 05:11:59 +0000 (+0000) Subject: linux-inactive-in-place-of-remunlink-20050818 X-Git-Tag: openafs-devel-1_5_0~366 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=caa4c12b719763c6b35080a6e5f0beaf0d53c406 linux-inactive-in-place-of-remunlink-20050818 FIXES 20912 call afs_InactiveVCache() instead of afs_remunlink() for unlink, the "inactive" refcount is 1 now instead of 0. --- diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 6f21660..fc5e8fa 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -792,7 +792,7 @@ afs_dentry_iput(struct dentry *dp, struct inode *ip) AFS_GLOCK(); if (vcp->states & CUnlinked) - (void) afs_remunlink(vcp, 1); /* perhaps afs_InactiveVCache() instead */ + (void) afs_InactiveVCache(vcp, NULL); AFS_GUNLOCK(); iput(ip); @@ -974,7 +974,7 @@ afs_linux_unlink(struct inode *dip, struct dentry *dp) #if defined(AFS_LINUX26_ENV) lock_kernel(); #endif - if (((VREFCOUNT(tvc) > 0) && tvc->opens > 0) + if (VREFCOUNT(tvc) > 1 && tvc->opens > 0 && !(tvc->states & CUnlinked)) { struct dentry *__dp; char *__name;