in ufs_balloc_range(), don't rely on uvm_vnp_setsize() to invalidate
pages we've allocated past the real EOF when we fail to allocate a block. we used to play games with the VM notion of the file size but we don't do that anymore, so uvm_vnp_setsize() doesn't do what we want anymore. call the pager flush op instead.
This commit is contained in:
parent
e89ff0051b
commit
6944ee458a
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: ufs_inode.c,v 1.17 2000/12/01 09:54:42 chs Exp $ */
|
/* $NetBSD: ufs_inode.c,v 1.18 2000/12/03 03:57:24 chs Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
@ -274,10 +274,11 @@ ufs_balloc_range(vp, off, len, cred, flags)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
out:
|
out:
|
||||||
if (error) {
|
|
||||||
uvm_vnp_setsize(vp, oldeof);
|
|
||||||
}
|
|
||||||
simple_lock(&uobj->vmobjlock);
|
simple_lock(&uobj->vmobjlock);
|
||||||
|
if (error) {
|
||||||
|
(void) (uobj->pgops->pgo_flush)(uobj, oldeof, pagestart + ppb,
|
||||||
|
PGO_FREE);
|
||||||
|
}
|
||||||
if (pgs1[0] != NULL) {
|
if (pgs1[0] != NULL) {
|
||||||
uvm_page_unbusy(pgs1, npages1);
|
uvm_page_unbusy(pgs1, npages1);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user