summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_extattr.c
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1995-02-28 02:52:48 +0000
committerdg <dg@FreeBSD.org>1995-02-28 02:52:48 +0000
commit191e07d353e643784ea91e9e9d578e7b180ed299 (patch)
tree9f1cb5462ae5014d91095c62cf29fe3d96817127 /sys/kern/vfs_extattr.c
parent9dc9082480a38668c9917b37e40d2e91563ecddf (diff)
downloadFreeBSD-src-191e07d353e643784ea91e9e9d578e7b180ed299.zip
FreeBSD-src-191e07d353e643784ea91e9e9d578e7b180ed299.tar.gz
Do a vnode_pager_uncache after the VOP_RENAME to lose the remaining
reference to the old vnode. Suggested by: Bruce Evans
Diffstat (limited to 'sys/kern/vfs_extattr.c')
-rw-r--r--sys/kern/vfs_extattr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index b63f748..eef1fce 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94
- * $Id: vfs_syscalls.c,v 1.16 1994/11/04 14:41:34 davidg Exp $
+ * $Id: vfs_syscalls.c,v 1.17 1995/02/13 13:45:04 davidg Exp $
*/
#include <sys/param.h>
@@ -938,7 +938,7 @@ unlink(p, uap, retval)
if (vp->v_flag & VROOT)
error = EBUSY;
else
- (void)vnode_pager_uncache(vp);
+ (void) vnode_pager_uncache(vp);
}
if (!error) {
@@ -1854,6 +1854,8 @@ out:
LEASE_CHECK(tvp, p, p->p_ucred, LEASE_WRITE);
error = VOP_RENAME(fromnd.ni_dvp, fromnd.ni_vp, &fromnd.ni_cnd,
tond.ni_dvp, tond.ni_vp, &tond.ni_cnd);
+ if (tvp && !error)
+ (void) vnode_pager_uncache(tvp);
} else {
VOP_ABORTOP(tond.ni_dvp, &tond.ni_cnd);
if (tdvp == tvp)
OpenPOWER on IntegriCloud