diff options
author | dg <dg@FreeBSD.org> | 1995-03-20 10:20:42 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-03-20 10:20:42 +0000 |
commit | 5d88c07ee171b82b2785890f74c4a548d181fd81 (patch) | |
tree | e60ea877114d7f2367bff3654ed30287fe16d9b5 /sys/vm/vnode_pager.c | |
parent | b9e7140c7c69e5fff051dbec1cbd376a4f854a3b (diff) | |
download | FreeBSD-src-5d88c07ee171b82b2785890f74c4a548d181fd81.zip FreeBSD-src-5d88c07ee171b82b2785890f74c4a548d181fd81.tar.gz |
Don't gain/lose an object reference in vnode_pager_setsize(). It will
cause vnode locking problems in vm_object_terminate().
Implement proper vnode locking in vm_object_terminate().
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r-- | sys/vm/vnode_pager.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index 162525f..34ccde5 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -37,7 +37,7 @@ * SUCH DAMAGE. * * from: @(#)vnode_pager.c 7.5 (Berkeley) 4/20/91 - * $Id: vnode_pager.c,v 1.31 1995/03/19 12:36:10 davidg Exp $ + * $Id: vnode_pager.c,v 1.32 1995/03/19 23:46:25 davidg Exp $ */ /* @@ -368,16 +368,6 @@ vnode_pager_setsize(vp, nsize) return; /* - * No object. This can happen during object termination since - * vm_object_page_clean is called after the object has been removed - * from the hash table, and clean may cause vnode write operations - * which can wind up back here. - */ - object = vm_object_lookup(pager); - if (object == NULL) - return; - - /* * File has shrunk. Toss any cached pages beyond the new EOF. */ if (nsize < vnp->vnp_size) { @@ -406,8 +396,6 @@ vnode_pager_setsize(vp, nsize) } vnp->vnp_size = (vm_offset_t) nsize; object->size = round_page(nsize); - - vm_object_deallocate(object); } void |