summaryrefslogtreecommitdiff
path: root/sys/uvm/uvm_vnode.c
diff options
context:
space:
mode:
authoryamt <yamt@NetBSD.org>2006-10-14 09:20:35 +0000
committeryamt <yamt@NetBSD.org>2006-10-14 09:20:35 +0000
commit61934cf2b45ec451645dce55d92f369e6b311017 (patch)
treec2bd9116a5873bab9becdf0c2a4a99fdd8f31294 /sys/uvm/uvm_vnode.c
parent583781abd34ea531c04496efe355e32c7da3ddee (diff)
uvm_vnp_setsize: put back v_size assignment after uvn_put.
PR/34147 from Juergen Hannken-Illjes.
Diffstat (limited to 'sys/uvm/uvm_vnode.c')
-rw-r--r--sys/uvm/uvm_vnode.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/uvm/uvm_vnode.c b/sys/uvm/uvm_vnode.c
index 23cbf138a3a..a24d9b5dfbe 100644
--- a/sys/uvm/uvm_vnode.c
+++ b/sys/uvm/uvm_vnode.c
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_vnode.c,v 1.75 2006/10/12 10:14:20 yamt Exp $ */
+/* $NetBSD: uvm_vnode.c,v 1.76 2006/10/14 09:20:35 yamt Exp $ */
/*
* Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -50,7 +50,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_vnode.c,v 1.75 2006/10/12 10:14:20 yamt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_vnode.c,v 1.76 2006/10/14 09:20:35 yamt Exp $");
#include "fs_nfs.h"
#include "opt_uvmhist.h"
@@ -466,12 +466,12 @@ uvm_vnp_setsize(struct vnode *vp, voff_t newsize)
*/
oldsize = vp->v_size;
- vp->v_size = newsize;
if (oldsize > pgend && oldsize != VSIZENOTSET) {
(void) uvn_put(uobj, pgend, 0, PGO_FREE | PGO_SYNCIO);
- } else {
- simple_unlock(&uobj->vmobjlock);
+ simple_lock(&uobj->vmobjlock);
}
+ vp->v_size = newsize;
+ simple_unlock(&uobj->vmobjlock);
}
/*