freebsd-dev/sys/kern
Konstantin Belousov bcd5bb8e57 Add a facility for vgone() to inform the set of subscribed mounts
about vnode reclamation. Typical use is for the bypass mounts like
nullfs to get a notification about lower vnode going away.

Now, vgone() calls new VFS op vfs_reclaim_lowervp() with an argument
lowervp which is reclaimed. It is possible to register several
reclamation event listeners, to correctly handle the case of several
nullfs mounts over the same directory.

For the filesystem not having nullfs mounts over it, the overhead
added is a single mount interlock lock/unlock in the vnode reclamation
path.

In collaboration with:	pho
MFC after:	3 weeks
2012-09-09 19:17:15 +00:00
..
bus_if.m Add a BUS_CHILD_DELETED() method that a bus can hook to allow it to cleanup 2012-08-21 18:13:09 +00:00
capabilities.conf Add missing system calls. 2012-05-31 19:32:37 +00:00
clock_if.m
cpufreq_if.m
device_if.m Revert r239178 and implement two new functions, namely 2012-08-15 15:42:57 +00:00
dtio_kdtrace.c Initial commit of an I/O provider for DTrace on FreeBSD. 2012-07-11 16:27:02 +00:00
genassym.sh
imgact_aout.c Cosmetics: define FREEBSD32_MINUSER and AOUT32_MINUSER for struct 2012-07-22 13:41:45 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Fix several reads beyond the mapped first page of the binary in the 2012-07-19 11:15:53 +00:00
imgact_gzip.c Remove an old hack I noticed years ago, but never committed. 2012-06-28 07:33:43 +00:00
imgact_shell.c
inflate.c
init_main.c Fix grammar. 2012-08-16 13:01:56 +00:00
init_sysent.c regen. 2012-08-17 02:47:16 +00:00
kern_acct.c - Don't log messages saying that accounting is being disabled and enabled 2012-05-02 14:25:39 +00:00
kern_alq.c
kern_clock.c Implement the DTrace sched provider. This implementation aims to be 2012-05-15 01:30:25 +00:00
kern_clocksource.c Particlly MFcalloutng r238425 (by davide): 2012-08-04 08:06:37 +00:00
kern_condvar.c Include the associated wait channel message for context switch ktrace 2012-04-20 15:32:36 +00:00
kern_conf.c Remove unused SI_* flags. 2012-08-28 19:30:29 +00:00
kern_cons.c belatedly transfer copyrights from libkern/gets.c to kern_cons.c 2011-12-17 15:50:45 +00:00
kern_context.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
kern_cpu.c Revert r175376 and tune cpufreq(4) frequency comparison logic instead. 2012-03-10 18:56:16 +00:00
kern_cpuset.c Post r222812 KTR_CPUMASK started being initialized only as a tunable 2012-08-30 21:22:47 +00:00
kern_ctf.c Fix found places where uio_resid is truncated to int. 2012-02-21 01:05:12 +00:00
kern_descrip.c Add F_DUP2FD_CLOEXEC. Apparently Solaris 11 already did this. 2012-07-27 10:41:10 +00:00
kern_dtrace.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
kern_environment.c Reserve room for the terminating NUL when setting or getting kernel 2012-08-14 19:16:30 +00:00
kern_et.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
kern_event.c Make the interval timings for EVFILT_TIMER more accurate. tvtohz() always 2012-07-13 13:24:33 +00:00
kern_exec.c Unbreak handling of descriptors opened with O_EXEC by fexecve(2). 2012-07-08 00:51:38 +00:00
kern_exit.c A few whitespace and comment fixes. 2012-09-07 15:10:46 +00:00
kern_fail.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
kern_ffclock.c Revise the sysctl handling code and restructure the hierarchy of sysctls 2011-12-01 07:19:13 +00:00
kern_fork.c userret() already checks for td_locks when INVARIANTS is enabled, so 2012-09-08 18:27:11 +00:00
kern_gzio.c Fix found places where uio_resid is truncated to int. 2012-02-21 01:05:12 +00:00
kern_hhook.c Staticize malloc types. 2011-04-13 11:28:46 +00:00
kern_idle.c On multi-core, multi-threaded PPC systems, it is important that the threads 2011-05-31 15:11:43 +00:00
kern_intr.c Do not add handler to event handlers list until ithread is created. 2012-08-06 16:37:43 +00:00
kern_jail.c Fix use-after-free in kern_jail_set() triggered e.g. by attempts 2012-05-22 19:43:20 +00:00
kern_khelp.c Use the full and proper company name for Swinburne University of Technology 2011-04-12 08:13:18 +00:00
kern_kthread.c Stop treating td_sigmask specially for the purposes of new thread 2012-05-26 20:03:47 +00:00
kern_ktr.c Post r222812 KTR_CPUMASK started being initialized only as a tunable 2012-08-30 21:22:47 +00:00
kern_ktrace.c Include the associated wait channel message for context switch ktrace 2012-04-20 15:32:36 +00:00
kern_linker.c If a linker file contains at least one module, but all of the modules 2012-04-12 14:49:25 +00:00
kern_lock.c Add software PMC support. 2012-03-28 20:58:30 +00:00
kern_lockf.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
kern_lockstat.c
kern_loginclass.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
kern_malloc.c Fix a bug with memguard(9) on 32-bit architectures without a 2012-07-15 20:29:48 +00:00
kern_mbuf.c Allow nmbjumbop, nmbjumbo9, and nmbjumbo16 to be set directly via loader 2012-08-23 21:32:02 +00:00
kern_mib.c As a safety measure, disable lowering pid_max too much. 2012-08-16 13:04:21 +00:00
kern_module.c Fix a typo. 2012-08-22 20:01:57 +00:00
kern_mtxpool.c
kern_mutex.c Add software PMC support. 2012-03-28 20:58:30 +00:00
kern_ntptime.c Limit popcorn limit to something sane (either 2ns or 2 ticks if that's 2012-08-16 02:35:44 +00:00
kern_osd.c
kern_physio.c
kern_pmc.c Add software PMC support. 2012-03-28 20:58:30 +00:00
kern_poll.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
kern_priv.c
kern_proc.c Don't include opt_ddb.h & <ddb/ddb.h> twice. 2012-08-15 14:18:54 +00:00
kern_prot.c Fix a typo. (s/nessesary/necessary/) 2012-01-08 18:48:36 +00:00
kern_racct.c Fix panic with RACCT that could occur in low memory (or out of swap) 2012-05-22 15:58:27 +00:00
kern_rangelock.c Add a rangelock implementation, intended to be used to range-locking 2012-05-30 16:06:38 +00:00
kern_rctl.c Stop treating system processes as special. This fixes panics 2012-04-17 14:31:02 +00:00
kern_resource.c Change kern.proc.rlimit sysctl to: 2012-01-22 20:25:00 +00:00
kern_rmlock.c panic: add a switch and infrastructure for stopping other CPUs in SMP case 2011-12-11 21:02:01 +00:00
kern_rwlock.c Add software PMC support. 2012-03-28 20:58:30 +00:00
kern_sdt.c Instead of only iterating over the set of known SDT probes when sdt.ko is 2012-03-27 15:07:43 +00:00
kern_sema.c
kern_sharedpage.c Move the code dealing with shared page into a dedicated 2012-06-23 10:15:23 +00:00
kern_shutdown.c free wdog_kern_pat calls in post-panic paths from under SW_WATCHDOG 2012-06-03 08:01:12 +00:00
kern_sig.c Deliver SIGSYS to the guilty thread, not to the process. 2012-08-18 18:17:10 +00:00
kern_switch.c critical_exit: ignore td_owepreempt if kdb_active is set 2011-12-04 21:27:41 +00:00
kern_sx.c Add software PMC support. 2012-03-28 20:58:30 +00:00
kern_synch.c Implement the DTrace sched provider. This implementation aims to be 2012-05-15 01:30:25 +00:00
kern_syscalls.c
kern_sysctl.c Handle spurious page faults that may occur in no-fault sections of the 2012-03-22 04:52:51 +00:00
kern_tc.c Add support for walltimestamp in DTrace. 2012-07-16 20:17:19 +00:00
kern_thr.c Stop treating td_sigmask specially for the purposes of new thread 2012-05-26 20:03:47 +00:00
kern_thread.c A few whitespace and comment fixes. 2012-09-07 15:10:46 +00:00
kern_time.c Implement syscall clock_getcpuclockid2, so we can get a clock id 2012-08-17 02:26:31 +00:00
kern_timeout.c Move the code to call the callout callback into the helper function 2012-05-03 20:00:30 +00:00
kern_umtx.c Some style fixes inspired by @bde. 2012-08-11 23:48:39 +00:00
kern_uuid.c Convert all users of IF_ADDR_LOCK to use new locking macros that specify 2012-01-05 19:00:36 +00:00
kern_xxx.c
ksched.c sched_rr_interval() seems always returned period in hz ticks, but same 2012-08-10 18:19:57 +00:00
link_elf_obj.c Fix found places where uio_resid is truncated to int. 2012-02-21 01:05:12 +00:00
link_elf.c Fix found places where uio_resid is truncated to int. 2012-02-21 01:05:12 +00:00
linker_if.m
Make.tags.inc Update tags build script 2011-07-10 00:53:04 +00:00
Makefile
makesyscalls.sh - Add the ffclock_getcounter(), ffclock_getestimate() and ffclock_setestimate() 2011-11-21 01:26:10 +00:00
md4c.c
md5c.c
p1003_1b.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
posix4_mib.c Define two new sysctl node flags: CTLFLAG_CAPRD and CTLFLAG_CAPRW, which 2011-07-17 23:05:24 +00:00
sched_4bsd.c Mark the idle threads as non-sleepable and also assert that an idle 2012-08-22 20:01:38 +00:00
sched_ule.c Mark the idle threads as non-sleepable and also assert that an idle 2012-08-22 20:01:38 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c Fix bug where NFSv4 ACL enforcement code wouldn't unconditionally 2012-04-17 14:54:00 +00:00
subr_acl_posix1e.c Add module load/unload stubs. 2012-03-13 20:27:48 +00:00
subr_autoconf.c
subr_blist.c - Fix typos s/(more|less) then|\1 than/ 2011-12-03 15:41:37 +00:00
subr_bufring.c
subr_bus.c Add a BUS_CHILD_DELETED() method that a bus can hook to allow it to cleanup 2012-08-21 18:13:09 +00:00
subr_clock.c
subr_devstat.c Fix build for kernels with dtrace hooks. 2012-07-11 18:50:50 +00:00
subr_disk.c
subr_dummy_vdso_tc.c Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
subr_eventhandler.c
subr_fattime.c
subr_firmware.c Correct sizeof usage 2012-06-25 05:41:16 +00:00
subr_hash.c Convert panic()s to KASSERT()s. This is an optimisation for 2012-01-23 16:31:46 +00:00
subr_hints.c Style fixes. 2012-09-04 23:16:55 +00:00
subr_kdb.c - Extend the KDB interface to add a per-debugger callback to print a 2012-04-12 17:43:59 +00:00
subr_kobj.c As it turns out, r186347 actually is insufficient to avoid the use of the 2011-11-15 20:11:03 +00:00
subr_lock.c panic: add a switch and infrastructure for stopping other CPUs in SMP case 2011-12-11 21:02:01 +00:00
subr_log.c Add kqueue support to /dev/klog. 2012-02-01 14:34:52 +00:00
subr_mbpool.c
subr_mchain.c - Use uint8_t for the variable x and spell the size of the variable 2012-02-06 06:03:16 +00:00
subr_module.c
subr_msgbuf.c - Clean up timestamps in msgbuf code. The timestamps should now be 2012-03-19 00:36:32 +00:00
subr_param.c - Mark some sysctls with CTLFLAG_TUN flag instead of CTLFLAG_RDTUN. 2012-09-03 09:26:56 +00:00
subr_pcpu.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
subr_power.c
subr_prf.c Fix double vision syndrome (read: double output) when in the 2011-10-16 14:16:46 +00:00
subr_prof.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
subr_rman.c Unlock in the error path to prevent a lock leak. 2012-05-31 17:27:05 +00:00
subr_rtc.c Core structure and functions to support a feed-forward clock within the kernel. 2011-11-19 14:10:16 +00:00
subr_sbuf.c r222015 introduced a new assertion that the size of a fixed-length sbuf 2011-08-19 08:29:10 +00:00
subr_scanf.c Xen netback driver rewrite. 2012-01-26 16:35:09 +00:00
subr_sglist.c
subr_sleepqueue.c Implement the DTrace sched provider. This implementation aims to be 2012-05-15 01:30:25 +00:00
subr_smp.c Another fixe for r236772. 2012-06-11 18:47:26 +00:00
subr_stack.c Constify stack argument for functions that don't modify it. 2011-11-16 19:06:55 +00:00
subr_syscall.c Move the checks for td_pinned, td_critnest, TDP_NOFAULTING and 2012-09-08 18:35:15 +00:00
subr_taskqueue.c Shorten the name of the fast SWI taskqueue to "fast taskq" so that 2012-08-28 13:35:37 +00:00
subr_trap.c Move the checks for td_pinned, td_critnest, TDP_NOFAULTING and 2012-09-08 18:35:15 +00:00
subr_turnstile.c Mark the idle threads as non-sleepable and also assert that an idle 2012-08-22 20:01:38 +00:00
subr_uio.c After the PHYS_TO_VM_PAGE() function was de-inlined, the main reason 2012-08-05 14:11:42 +00:00
subr_unit.c
subr_witness.c - Unlike cache invalidation and TLB demapping IPIs, reading registers from 2012-08-29 16:56:50 +00:00
sys_capability.c Style: move opt_*.h includes in the proper place. 2012-06-10 20:22:10 +00:00
sys_generic.c The variable 'error' in sys_poll() is initialized in declaration to value 2012-06-17 13:03:50 +00:00
sys_pipe.c I am comparing current pipe code with the one in 8.3-STABLE r236165, 2012-07-31 05:48:35 +00:00
sys_procdesc.c Fix panic in procdesc that can be triggered in the following scenario: 2012-09-01 11:21:56 +00:00
sys_process.c Always initialize pl_event. 2012-08-08 00:20:30 +00:00
sys_socket.c Add the fo_chown and fo_chmod methods to struct fileops and use them 2011-08-16 20:07:47 +00:00
syscalls.c regen. 2012-08-17 02:47:16 +00:00
syscalls.master Implement syscall clock_getcpuclockid2, so we can get a clock id 2012-08-17 02:26:31 +00:00
systrace_args.c Implement syscall clock_getcpuclockid2, so we can get a clock id 2012-08-17 02:26:31 +00:00
sysv_ipc.c
sysv_msg.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
sysv_sem.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
sysv_shm.c Close a race due to dropping of the map lock between creating a map entry 2012-02-19 00:28:49 +00:00
tty_compat.c
tty_info.c Fix whitespace inconsistencies in TTY code. 2012-02-06 18:15:46 +00:00
tty_inq.c Use strchr() and strrchr(). 2012-01-02 12:12:10 +00:00
tty_outq.c Fix whitespace inconsistencies in the TTY layer and its drivers owned by me. 2011-06-26 18:26:20 +00:00
tty_pts.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
tty_tty.c
tty_ttydisc.c Fix found places where uio_resid is truncated to int. 2012-02-21 01:05:12 +00:00
tty.c In tty_makedev() the following construction: 2012-06-18 07:34:38 +00:00
uipc_accf.c
uipc_cow.c
uipc_debug.c
uipc_domain.c Catch up with r195837 (2.5 years ago) which renamed net_add_domain() to domain_add(). 2012-02-23 17:47:19 +00:00
uipc_mbuf2.c
uipc_mbuf.c Fix found places where uio_resid is truncated to int. 2012-02-21 01:05:12 +00:00
uipc_mqueue.c Remove unused thread argument to vrecycle(). 2012-04-23 14:10:34 +00:00
uipc_sem.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
uipc_shm.c Export some more useful info about shared memory objects to userland 2012-04-01 18:22:48 +00:00
uipc_sockbuf.c Document a large number of currently undocumented sysctls. While here 2011-12-13 00:38:50 +00:00
uipc_socket.c In soreceive_generic() remove the optimization for the case when 2012-09-02 07:33:52 +00:00
uipc_syscalls.c After the PHYS_TO_VM_PAGE() function was de-inlined, the main reason 2012-08-05 14:11:42 +00:00
uipc_usrreq.c Supply the pr_ctloutput method for local datagram sockets, 2012-09-07 21:06:54 +00:00
vfs_acl.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
vfs_aio.c Add 32-bit compat code for AIO kevent flags introduced in revision 230857. 2012-02-05 04:49:31 +00:00
vfs_bio.c Fix typo [1]. Use commas to separate flag printouts, in style with 2012-06-02 19:39:12 +00:00
vfs_cache.c Post r230394, the Lookup RPC counts for both NFS clients increased 2012-03-03 01:06:54 +00:00
vfs_cluster.c Correct a KASSERT message. 2012-08-15 22:12:01 +00:00
vfs_default.c When synchronously syncing a device (MNT_WAIT), wait for buffers 2012-06-09 22:26:53 +00:00
vfs_export.c
vfs_extattr.c Fix found places where uio_resid is truncated to int. 2012-02-21 01:05:12 +00:00
vfs_hash.c
vfs_init.c Modify vfs_register() to use a hash calculation 2011-09-13 21:01:26 +00:00
vfs_lookup.c Add MNTK_LOOKUP_EXCL_DOTDOT struct mount flag, which specifies to the 2012-09-09 19:11:52 +00:00
vfs_mount.c Add a facility for vgone() to inform the set of subscribed mounts 2012-09-09 19:17:15 +00:00
vfs_mountroot.c Fix found places where uio_resid is truncated to int. 2012-02-21 01:05:12 +00:00
vfs_subr.c Add a facility for vgone() to inform the set of subscribed mounts 2012-09-09 19:17:15 +00:00
vfs_syscalls.c Reorder the managament of advisory locks on open files so that the advisory 2012-07-31 18:25:00 +00:00
vfs_vnops.c Reorder the managament of advisory locks on open files so that the advisory 2012-07-31 18:25:00 +00:00
vnode_if.src Introduce VOP_UNP_BIND(), VOP_UNP_CONNECT(), and VOP_UNP_DETACH() 2012-02-29 21:38:31 +00:00