svn commit: r250263 - stable/9/sys/vm

Konstantin Belousov kib at FreeBSD.org
Sun May 5 06:32:14 UTC 2013


Author: kib
Date: Sun May  5 06:32:13 2013
New Revision: 250263
URL: http://svnweb.freebsd.org/changeset/base/250263

Log:
  MFC r250028:
  Assert that the object type for the vnode' non-NULL v_object, passed
  to vnode_pager_setsize(), is either OBJT_VNODE, or, if vnode was
  already reclaimed, OBJT_DEAD.
  
  More, if the object is terminated, do not perform the resizing operation.

Modified:
  stable/9/sys/vm/vnode_pager.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/vm/vnode_pager.c
==============================================================================
--- stable/9/sys/vm/vnode_pager.c	Sun May  5 06:25:28 2013	(r250262)
+++ stable/9/sys/vm/vnode_pager.c	Sun May  5 06:32:13 2013	(r250263)
@@ -380,6 +380,12 @@ vnode_pager_setsize(vp, nsize)
 		return;
 /* 	ASSERT_VOP_ELOCKED(vp, "vnode_pager_setsize and not locked vnode"); */
 	VM_OBJECT_LOCK(object);
+	if (object->type == OBJT_DEAD) {
+		VM_OBJECT_UNLOCK(object);
+		return;
+	}
+	KASSERT(object->type == OBJT_VNODE,
+	    ("not vnode-backed object %p", object));
 	if (nsize == object->un_pager.vnp.vnp_size) {
 		/*
 		 * Hasn't changed size


More information about the svn-src-all mailing list