aboutsummaryrefslogtreecommitdiff
path: root/libexec/atrun
diff options
context:
space:
mode:
authorJohn Dyson <dyson@FreeBSD.org>1998-01-06 05:26:17 +0000
committerJohn Dyson <dyson@FreeBSD.org>1998-01-06 05:26:17 +0000
commit95e5e988e0185323f57093b8cb1202e130b57314 (patch)
treeca94c084166ef1096c7e4961bb3d03a629ff0c53 /libexec/atrun
parentdd30ff81d91557627625903be1c94bb47646dce1 (diff)
downloadsrc-95e5e988e0185323f57093b8cb1202e130b57314.tar.gz
src-95e5e988e0185323f57093b8cb1202e130b57314.zip
Make our v_usecount vnode reference count work identically to the
original BSD code. The association between the vnode and the vm_object no longer includes reference counts. The major difference is that vm_object's are no longer freed gratuitiously from the vnode, and so once an object is created for the vnode, it will last as long as the vnode does. When a vnode object reference count is incremented, then the underlying vnode reference count is incremented also. The two "objects" are now more intimately related, and so the interactions are now much less complex. When vnodes are now normally placed onto the free queue with an object still attached. The rundown of the object happens at vnode rundown time, and happens with exactly the same filesystem semantics of the original VFS code. There is absolutely no need for vnode_pager_uncache and other travesties like that anymore. A side-effect of these changes is that SMP locking should be much simpler, the I/O copyin/copyout optimizations work, NFS should be more ponderable, and further work on layered filesystems should be less frustrating, because of the totally coherent management of the vnode objects and vnodes. Please be careful with your system while running this code, but I would greatly appreciate feedback as soon a reasonably possible.
Notes
Notes: svn path=/head/; revision=32286
Diffstat (limited to 'libexec/atrun')
0 files changed, 0 insertions, 0 deletions