svn commit: r252714 - head/sys/fs/nullfs

Konstantin Belousov kib at FreeBSD.org
Thu Jul 4 19:01:18 UTC 2013


Author: kib
Date: Thu Jul  4 19:01:18 2013
New Revision: 252714
URL: http://svnweb.freebsd.org/changeset/base/252714

Log:
  The tvp vnode on rename is usually unlinked.  Drop the cached null
  vnode for tvp to allow the free of the lower vnode, if needed.
  
  PR:	kern/180236
  Tested by:	smh
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Modified:
  head/sys/fs/nullfs/null_vnops.c

Modified: head/sys/fs/nullfs/null_vnops.c
==============================================================================
--- head/sys/fs/nullfs/null_vnops.c	Thu Jul  4 18:59:58 2013	(r252713)
+++ head/sys/fs/nullfs/null_vnops.c	Thu Jul  4 19:01:18 2013	(r252714)
@@ -554,6 +554,7 @@ null_rename(struct vop_rename_args *ap)
 	struct vnode *fvp = ap->a_fvp;
 	struct vnode *fdvp = ap->a_fdvp;
 	struct vnode *tvp = ap->a_tvp;
+	struct null_node *tnn;
 
 	/* Check for cross-device rename. */
 	if ((fvp->v_mount != tdvp->v_mount) ||
@@ -568,7 +569,11 @@ null_rename(struct vop_rename_args *ap)
 		vrele(fvp);
 		return (EXDEV);
 	}
-	
+
+	if (tvp != NULL) {
+		tnn = VTONULL(tvp);
+		tnn->null_flags |= NULLV_DROP;
+	}
 	return (null_bypass((struct vop_generic_args *)ap));
 }
 


More information about the svn-src-head mailing list