Author: kib
Date: Wed Feb 17 19:43:03 2016
New Revision: 295717
URL: https://svnweb.freebsd.org/changeset/base/295717

Log:
  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.
  
  Reported and tested by:       pho (previous version)
  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     Wed Feb 17 19:39:57 2016        
(r295716)
+++ head/sys/fs/nullfs/null_vnops.c     Wed Feb 17 19:43:03 2016        
(r295717)
@@ -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,
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to