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