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,
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to