diff options
author | kib <kib@FreeBSD.org> | 2015-05-10 08:21:03 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2015-05-10 08:21:03 +0000 |
commit | cb622d9740ff59513f78e7848566a171e0c2c584 (patch) | |
tree | 2c500727f6831fe521c1b96e7feec71da0a08fb6 /sys/vm | |
parent | d46813ebcd015680317630193d9b872cb9e38514 (diff) | |
download | FreeBSD-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.c | 6 |
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; } |