Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 May 2015 08:21:04 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r282706 - head/sys/vm
Message-ID:  <201505100821.t4A8L4EB077650@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Sun May 10 08:21:03 2015
New Revision: 282706
URL: https://svnweb.freebsd.org/changeset/base/282706

Log:
  Satisfy vm_object uma zone destructor requirements after r282660 when
  vnode object creation raced.
  
  Reported by:	pho
  Reviewed by:	alc
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/sys/vm/vnode_pager.c

Modified: head/sys/vm/vnode_pager.c
==============================================================================
--- head/sys/vm/vnode_pager.c	Sun May 10 06:59:34 2015	(r282705)
+++ head/sys/vm/vnode_pager.c	Sun May 10 08:21:03 2015	(r282706)
@@ -237,6 +237,12 @@ retry:
 			 * Object has been created while we were sleeping
 			 */
 			VI_UNLOCK(vp);
+			VM_OBJECT_WLOCK(object);
+			KASSERT(object->ref_count == 1,
+			    ("leaked ref %p %d", object, object->ref_count));
+			object->type = OBJT_DEAD;
+			object->ref_count = 0;
+			VM_OBJECT_WUNLOCK(object);
 			vm_object_destroy(object);
 			goto retry;
 		}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505100821.t4A8L4EB077650>