diff options
author | dyson <dyson@FreeBSD.org> | 1997-12-29 00:25:11 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1997-12-29 00:25:11 +0000 |
commit | cd67bb82fe37f70fed8e42c14c818de84029e3c0 (patch) | |
tree | a5d04c1ccd61a23a22dbd5ecd8264d7c3e866024 /sys/kern/vfs_syscalls.c | |
parent | f5f5008388092430288cb0018453755be5be7bdb (diff) | |
download | FreeBSD-src-cd67bb82fe37f70fed8e42c14c818de84029e3c0.zip FreeBSD-src-cd67bb82fe37f70fed8e42c14c818de84029e3c0.tar.gz |
Lots of improvements, including restructring the caching and management
of vnodes and objects. There are some metadata performance improvements
that come along with this. There are also a few prototypes added when
the need is noticed. Changes include:
1) Cleaning up vref, vget.
2) Removal of the object cache.
3) Nuke vnode_pager_uncache and friends, because they aren't needed anymore.
4) Correct some missing LK_RETRY's in vn_lock.
5) Correct the page range in the code for msync.
Be gentle, and please give me feedback asap.
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r-- | sys/kern/vfs_syscalls.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 6d71a6c..69751c4 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94 - * $Id: vfs_syscalls.c,v 1.86 1997/12/16 17:40:31 eivind Exp $ + * $Id: vfs_syscalls.c,v 1.87 1997/12/27 02:56:23 bde Exp $ */ /* For 4.3 integer FS ID compatibility */ @@ -430,7 +430,6 @@ dounmount(mp, flags, p) mp->mnt_flag &=~ MNT_ASYNC; vfs_msync(mp, MNT_NOWAIT); - vnode_pager_umount(mp); /* release cached vnodes */ cache_purgevfs(mp); /* remove cache entries for this file sys */ if (((mp->mnt_flag & MNT_RDONLY) || (error = VFS_SYNC(mp, MNT_WAIT, p->p_ucred, p)) == 0) || @@ -1263,8 +1262,6 @@ unlink(p, uap) */ if (vp->v_flag & VROOT) error = EBUSY; - else - (void) vnode_pager_uncache(vp, p); } if (!error) { @@ -2160,9 +2157,9 @@ fsync(p, uap) if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp)) return (error); vp = (struct vnode *)fp->f_data; - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p); + vn_lock(vp, LK_EXCLUSIVE, p); if (vp->v_object) { - vm_object_page_clean(vp->v_object, 0, 0 ,0, FALSE); + vm_object_page_clean(vp->v_object, 0, 0 ,0); } error = VOP_FSYNC(vp, fp->f_cred, (vp->v_mount && (vp->v_mount->mnt_flag & MNT_ASYNC)) ? @@ -2242,7 +2239,6 @@ out: VOP_LEASE(fromnd.ni_dvp, p, p->p_ucred, LEASE_WRITE); if (tvp) { VOP_LEASE(tvp, p, p->p_ucred, LEASE_WRITE); - (void) vnode_pager_uncache(tvp, p); } error = VOP_RENAME(fromnd.ni_dvp, fromnd.ni_vp, &fromnd.ni_cnd, tond.ni_dvp, tond.ni_vp, &tond.ni_cnd); |