svn commit: r295970 - stable/10/sys/fs/nullfs

Konstantin Belousov kib at FreeBSD.org
Wed Feb 24 13:48:42 UTC 2016


Author: kib
Date: Wed Feb 24 13:48:40 2016
New Revision: 295970
URL: https://svnweb.freebsd.org/changeset/base/295970

Log:
  MFC r295717:
  After nullfs rmdir operation, reclaim the directory vnode which was
  unlinked.  Otherwise the vnode stays cached, causing leak.  This is
  similar to r292961 for regular files.
  
  Approved by:	re (marius)

Modified:
  stable/10/sys/fs/nullfs/null_vnops.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/fs/nullfs/null_vnops.c
==============================================================================
--- stable/10/sys/fs/nullfs/null_vnops.c	Wed Feb 24 13:16:03 2016	(r295969)
+++ stable/10/sys/fs/nullfs/null_vnops.c	Wed Feb 24 13:48:40 2016	(r295970)
@@ -619,6 +619,14 @@ null_rename(struct vop_rename_args *ap)
 	return (null_bypass((struct vop_generic_args *)ap));
 }
 
+static int
+null_rmdir(struct vop_rmdir_args *ap)
+{
+
+	VTONULL(ap->a_vp)->null_flags |= NULLV_DROP;
+	return (null_bypass(&ap->a_gen));
+}
+
 /*
  * We need to process our own vnode lock and then clear the
  * interlock flag as it applies only to our vnode, not the
@@ -920,6 +928,7 @@ struct vop_vector null_vnodeops = {
 	.vop_reclaim =		null_reclaim,
 	.vop_remove =		null_remove,
 	.vop_rename =		null_rename,
+	.vop_rmdir =		null_rmdir,
 	.vop_setattr =		null_setattr,
 	.vop_strategy =		VOP_EOPNOTSUPP,
 	.vop_unlock =		null_unlock,


More information about the svn-src-stable-10 mailing list