summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-05-10 08:21:03 +0000
committerkib <kib@FreeBSD.org>2015-05-10 08:21:03 +0000
commitcb622d9740ff59513f78e7848566a171e0c2c584 (patch)
tree2c500727f6831fe521c1b96e7feec71da0a08fb6 /sys/vm
parentd46813ebcd015680317630193d9b872cb9e38514 (diff)
downloadFreeBSD-src-cb622d9740ff59513f78e7848566a171e0c2c584.zip
FreeBSD-src-cb622d9740ff59513f78e7848566a171e0c2c584.tar.gz
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
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vnode_pager.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index c59f81a..b65a2a3 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -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;
}
OpenPOWER on IntegriCloud