aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/msdosfs/msdosfs_denode.c
diff options
context:
space:
mode:
authorJohn Dyson <dyson@FreeBSD.org>1996-01-19 04:00:31 +0000
committerJohn Dyson <dyson@FreeBSD.org>1996-01-19 04:00:31 +0000
commitbd7e5f992efa91e837b384122c22470815b2be16 (patch)
tree3c31fd95ea745005a9cd6733db5a16f31bd828a6 /sys/fs/msdosfs/msdosfs_denode.c
parent22cb7684126d5015d675d60ab14e8a3ead76f555 (diff)
downloadsrc-bd7e5f992efa91e837b384122c22470815b2be16.tar.gz
src-bd7e5f992efa91e837b384122c22470815b2be16.zip
Eliminated many redundant vm_map_lookup operations for vm_mmap.
Speed up for vfs_bio -- addition of a routine bqrelse to greatly diminish overhead for merged cache. Efficiency improvement for vfs_cluster. It used to do alot of redundant calls to cluster_rbuild. Correct the ordering for vrele of .text and release of credentials. Use the selective tlb update for 486/586/P6. Numerous fixes to the size of objects allocated for files. Additionally, fixes in the various pagers. Fixes for proper positioning of vnode_pager_setsize in msdosfs and ext2fs. Fixes in the swap pager for exhausted resources. The pageout code will not as readily thrash. Change the page queue flags (PG_ACTIVE, PG_INACTIVE, PG_FREE, PG_CACHE) into page queue indices (PQ_ACTIVE, PQ_INACTIVE, PQ_FREE, PQ_CACHE), thereby improving efficiency of several routines. Eliminate even more unnecessary vm_page_protect operations. Significantly speed up process forks. Make vm_object_page_clean more efficient, thereby eliminating the pause that happens every 30seconds. Make sequential clustered writes B_ASYNC instead of B_DELWRI even in the case of filesystems mounted async. Fix a panic with busy pages when write clustering is done for non-VMIO buffers.
Notes
Notes: svn path=/head/; revision=13490
Diffstat (limited to 'sys/fs/msdosfs/msdosfs_denode.c')
-rw-r--r--sys/fs/msdosfs/msdosfs_denode.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/fs/msdosfs/msdosfs_denode.c b/sys/fs/msdosfs/msdosfs_denode.c
index 9f71630b282e..2f86783c9a3e 100644
--- a/sys/fs/msdosfs/msdosfs_denode.c
+++ b/sys/fs/msdosfs/msdosfs_denode.c
@@ -1,4 +1,4 @@
-/* $Id: msdosfs_denode.c,v 1.14 1995/12/03 16:41:53 bde Exp $ */
+/* $Id: msdosfs_denode.c,v 1.15 1995/12/07 12:47:19 davidg Exp $ */
/* $NetBSD: msdosfs_denode.c,v 1.9 1994/08/21 18:44:00 ws Exp $ */
/*-
@@ -442,10 +442,11 @@ detrunc(dep, length, flags, cred, p)
return EINVAL;
}
- vnode_pager_setsize(DETOV(dep), length);
- if (dep->de_FileSize < length)
+ if (dep->de_FileSize < length) {
+ vnode_pager_setsize(DETOV(dep), length);
return deextend(dep, length, cred);
+ }
/*
* If the desired length is 0 then remember the starting cluster of
@@ -515,6 +516,7 @@ detrunc(dep, length, flags, cred, p)
dep->de_flag |= DE_UPDATE;
vflags = (length > 0 ? V_SAVE : 0) | V_SAVEMETA;
vinvalbuf(DETOV(dep), vflags, cred, p, 0, 0);
+ vnode_pager_setsize(DETOV(dep), length);
TIMEVAL_TO_TIMESPEC(&time, &ts);
allerror = deupdat(dep, &ts, 1);
#ifdef MSDOSFS_DEBUG