freebsd-skq/sys/kern
John Dyson 95e5e988e0 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.
1998-01-06 05:26:17 +00:00
..
imgact_aout.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
imgact_elf.c We were (I think) missing a vrele() on the vnode for the object loaded 1997-09-21 03:13:21 +00:00
imgact_gzip.c Make gzipped dynamically linked executables work again. There was 1997-12-14 19:36:24 +00:00
imgact_shell.c Removed unused #includes. 1997-08-02 14:33:27 +00:00
inflate.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
init_main.c After one of my analysis passes to evaluate methods for SMP TLB mgmt, I 1997-12-14 02:11:23 +00:00
init_sysent.c Regenerate after changing makesyscalls.sh. 1997-12-16 22:27:22 +00:00
init_sysvec.c Removed unused #includes. 1997-08-02 14:33:27 +00:00
kern_acct.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_clock.c This patch causes the "calltodo" timer list to be decremented by the amount 1997-12-23 16:32:35 +00:00
kern_conf.c Staticized. 1997-11-22 08:35:46 +00:00
kern_descrip.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
kern_exec.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
kern_exit.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
kern_fork.c We have had support for running the kernel daemons as threads for 1997-12-12 04:00:59 +00:00
kern_intr.c - Hide the 'device doesn't supported shared interrupts' code behind 1997-10-06 04:27:32 +00:00
kern_ktrace.c Don't include <sys/lock.h> in headers when only `struct simplelock' is 1997-12-05 19:55:52 +00:00
kern_linker.c Use a real malloc type for M_LINKER instead of #defining it as M_TEMP. 1998-01-01 08:56:24 +00:00
kern_lkm.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_lock.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_lockf.c Don't include <sys/lock.h> in headers when only `struct simplelock' is 1997-12-05 19:55:52 +00:00
kern_malloc.c Some fixes from John Hood: 1997-12-05 05:36:58 +00:00
kern_mib.c Make kern.ncpu reports the number of detected processors when running 1997-12-25 13:14:21 +00:00
kern_module.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_ntptime.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
kern_opt.c Added a copyright and restored order. 1997-02-28 10:14:24 +00:00
kern_physio.c Removed unused #includes. 1997-09-02 20:06:59 +00:00
kern_proc.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
kern_prot.c Clear the p_stops field on change of user/group id, unless the correct 1997-12-20 03:05:47 +00:00
kern_random.c Rename "i586_ctr" to "tsc" (both upper and lower case instances). 1997-12-26 20:42:37 +00:00
kern_resource.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
kern_shutdown.c Shift a few SYSINT() calls around. 1997-11-25 07:07:48 +00:00
kern_sig.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
kern_subr.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
kern_synch.c Fixed style bugs in previous commit. 1997-12-29 08:54:52 +00:00
kern_sysctl.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
kern_tc.c This patch causes the "calltodo" timer list to be decremented by the amount 1997-12-23 16:32:35 +00:00
kern_threads.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_time.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
kern_timeout.c This patch causes the "calltodo" timer list to be decremented by the amount 1997-12-23 16:32:35 +00:00
kern_xxx.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
link_aout.c Fixed a sloppy common-style definitions. 1997-11-20 20:07:59 +00:00
Make.tags.inc Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
Makefile
makesyscalls.sh Move around opt_compat include to accomodate Linulator brokenness (for 1997-12-16 18:51:45 +00:00
md5c.c Add const to a couple of casts to silence some of the warnings Bruce 1997-10-21 13:28:36 +00:00
subr_autoconf.c Removed an unused #include. Ifdefed a conditionally used #include. 1997-11-18 12:43:41 +00:00
subr_clist.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
subr_disklabel.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
subr_diskmbr.c In all such uses of struct buf: 's/b_un.b_addr/b_data/g' 1997-12-02 21:07:20 +00:00
subr_diskslice.c Use ENOIOCTL instead of -1 (= ERESTART) for diskslice ioctls that are 1997-12-06 14:27:56 +00:00
subr_dkbad.c In all such uses of struct buf: 's/b_un.b_addr/b_data/g' 1997-12-02 21:07:20 +00:00
subr_log.c Removed unused #includes. 1997-10-28 15:59:26 +00:00
subr_param.c Removed unused #includes. 1997-06-14 11:38:46 +00:00
subr_prf.c Handle "%...p" as "%#...x" instead of "0x%...x". This is a quick fix 1997-12-28 05:03:33 +00:00
subr_prof.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
subr_rlist.c Fixed gratuitous ANSIisms. 1997-09-16 11:44:05 +00:00
subr_smp.c Add support for low resolution SMP kernel profiling. 1997-12-15 02:18:35 +00:00
subr_trap.c Changes to allow event-based process monitoring and control. 1997-12-06 04:11:14 +00:00
subr_xxx.c Zap nxselect and noselect. 1997-09-14 02:50:28 +00:00
sys_generic.c Fixed some style bugs in the poll() code. 1997-11-23 10:30:50 +00:00
sys_pipe.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
sys_process.c Changes to allow event-based process monitoring and control. 1997-12-06 04:11:14 +00:00
sys_socket.c Various select -> poll changes 1997-09-14 02:52:18 +00:00
syscalls.c Remade syscalls.master derived files. 1997-10-26 20:28:54 +00:00
syscalls.master Added missing caddr_t --> void * conversions for sys/mman.h functions. 1998-01-01 17:07:46 +00:00
sysv_ipc.c Removed an unused #include. Added an unsed #include of <sys/ucred.h> 1997-11-18 12:52:10 +00:00
sysv_msg.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
sysv_sem.c Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
sysv_shm.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
tty_compat.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
tty_conf.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
tty_cons.c Update select -> poll in drivers. 1997-09-14 03:19:42 +00:00
tty_pty.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
tty_snoop.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
tty_subr.c Last major round (Unless Bruce thinks of somthing :-) of malloc changes. 1997-10-12 20:26:33 +00:00
tty_tb.c Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
tty_tty.c Don't include <sys/lock.h> in headers when only `struct simplelock' is 1997-12-05 19:55:52 +00:00
tty.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
uipc_domain.c Fixed gratuitous ANSIisms. 1997-09-16 11:44:05 +00:00
uipc_mbuf.c Restored used include of <sys/malloc.h>. malloc() is not used 1997-12-28 01:01:13 +00:00
uipc_proto.c Removed unused #includes. 1997-08-02 14:33:27 +00:00
uipc_sockbuf.c Removed trailing semicolons from the definitions of the sysctl 1997-09-07 16:53:52 +00:00
uipc_socket2.c Removed trailing semicolons from the definitions of the sysctl 1997-09-07 16:53:52 +00:00
uipc_socket.c MF22: MSG_EOR bug fix. 1997-11-09 05:07:40 +00:00
uipc_syscalls.c Make COMPAT_43 and COMPAT_SUNOS new-style options. 1997-12-16 17:40:42 +00:00
uipc_usrreq.c Fixed duplicate definitions of M_FILE (one static). 1997-11-23 10:43:49 +00:00
vfs_aio.c Quiet some lint. 1997-12-10 04:14:23 +00:00
vfs_bio.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vfs_cache.c Removed some bogus casts. 1997-12-19 23:18:37 +00:00
vfs_cluster.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vfs_conf.c Cleanup my last patch here 1997-12-01 11:34:41 +00:00
vfs_default.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vfs_export.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vfs_extattr.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vfs_init.c Simplify the lease_check stuff. 1997-10-26 20:26:33 +00:00
vfs_lookup.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vfs_mount.c Cleanup my last patch here 1997-12-01 11:34:41 +00:00
vfs_subr.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vfs_syscalls.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vfs_vnops.c Make our v_usecount vnode reference count work identically to the 1998-01-06 05:26:17 +00:00
vnode_if.pl Use __inline instead of inline to prevent pedantic compiler warnings. 1997-12-19 23:25:16 +00:00
vnode_if.sh Use __inline instead of inline to prevent pedantic compiler warnings. 1997-12-19 23:25:16 +00:00
vnode_if.src Another VFS cleanup "kilo commit" 1997-10-16 20:32:40 +00:00