Fix the v_object leak for non-regular tmpfs vnodes.

Reported and tested by:	pho
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Konstantin Belousov 2013-05-02 18:46:31 +00:00
parent 158cc900bb
commit df6b240b6f

View File

@ -264,6 +264,7 @@ tmpfs_open(struct vop_open_args *v)
error = EPERM;
else {
error = 0;
/* For regular files, the call below is nop. */
vnode_create_vobject(vp, node->tn_size, v->a_td);
}
@ -1474,6 +1475,8 @@ tmpfs_reclaim(struct vop_reclaim_args *v)
if (vp->v_type == VREG)
tmpfs_destroy_vobject(vp, node->tn_reg.tn_aobj);
else
vnode_destroy_vobject(vp);
vp->v_object = NULL;
cache_purge(vp);