freebsd-dev/sys/kern
Andriy Gapon e0fa977ea5 safer wait-free iteration of shared interrupt handlers
The code that iterates a list of interrupt handlers for a (shared)
interrupt, whether in the ISR context or in the context of an interrupt
thread, does so in a lock-free fashion.   Thus, the routines that modify
the list need to take special steps to ensure that the iterating code
has a consistent view of the list.  Previously, those routines tried to
play nice only with the code running in the ithread context.  The
iteration in the ISR context was left to a chance.

After commit r336635 atomic operations and memory fences are used to
ensure that ie_handlers list is always safe to navigate with respect to
inserting and removal of list elements.

There is still a question of when it is safe to actually free a removed
element.

The idea of this change is somewhat similar to the idea of the epoch
based reclamation.  There are some simplifications comparing to the
general epoch based reclamation.  All writers are serialized using a
mutex, so we do not need to worry about concurrent modifications.  Also,
all read accesses from the open context are serialized too.

So, we can get away just two epochs / phases.  When a thread removes an
element it switches the global phase from the current phase to the other
and then drains the previous phase.  Only after the draining the removed
element gets actually freed. The code that iterates the list in the ISR
context takes a snapshot of the global phase and then increments the use
count of that phase before iterating the list.  The use count (in the
same phase) is decremented after the iteration.  This should ensure that
there should be no iteration over the removed element when its gets
freed.

This commit also simplifies the coordination with the interrupt thread
context.  Now we always schedule the interrupt thread when removing one
of handlers for its interrupt.  This makes the code both simpler and
safer as the interrupt thread masks the interrupt thus ensuring that
there is no interaction with the ISR context.

P.S.  This change matters only for shared interrupts and I realize that
those are becoming a thing of the past (and quickly).  I also understand
that the problem that I am trying to solve is extremely rare.

PR:		229106
Reviewed by:	cem
Discussed with:	Samy Al Bahra
MFC after:	5 weeks
Differential Revision: https://reviews.freebsd.org/D15905
2018-08-03 14:27:28 +00:00
..
bus_if.m "Buses" is the preferred plural of "bus" 2017-01-15 17:54:01 +00:00
capabilities.conf Name the implementation of brk and sbrk sys_break(). 2018-06-14 21:27:25 +00:00
clock_if.m
cpufreq_if.m
device_if.m Teach makeobjops.awk to accept PROLOG and EPILOG blocks before 2017-12-31 09:23:19 +00:00
genassym.sh Don't prefix zero with 0x in assym.s. 2017-04-13 15:43:44 +00:00
genoffset.c make critical_{enter, exit} inline 2018-07-03 01:55:09 +00:00
genoffset.sh expose thread_lite definition to tied modules 2018-07-03 02:50:07 +00:00
imgact_aout.c i386 4/4G split. 2018-04-13 20:30:49 +00:00
imgact_binmisc.c Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
imgact_elf32.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
imgact_elf64.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
imgact_elf.c Correct copyright dates. 2018-07-30 07:01:00 +00:00
imgact_gzip.c Use C99 designated initializers for struct execsw 2018-03-13 13:09:10 +00:00
imgact_shell.c Use C99 designated initializers for struct execsw 2018-03-13 13:09:10 +00:00
init_main.c With the introduction of reapers and reaplists in r275800, 2018-07-05 16:16:28 +00:00
init_sysent.c Regen after r336171. 2018-07-10 14:04:52 +00:00
kern_acct.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
kern_alq.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_clock.c Create a new macro for static DPCPU data. 2018-07-05 17:13:37 +00:00
kern_clocksource.c Create a new macro for static DPCPU data. 2018-07-05 17:13:37 +00:00
kern_condvar.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_conf.c conf: revert last change and annotate unused var instead 2018-05-19 05:07:03 +00:00
kern_cons.c add support for console resuming, implement it for uart, use on x86 2018-05-29 16:16:24 +00:00
kern_context.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_cpu.c kern_cpu: When adding abs frequency allow for unordered insertion 2018-07-19 11:28:14 +00:00
kern_cpuset.c kern_cpuset: fix small leak on error path 2018-05-26 14:23:11 +00:00
kern_ctf.c Revert r327828, r327949, r327953, r328016-r328026, r328041: 2018-01-21 15:42:36 +00:00
kern_descrip.c fd: stop passing M_ZERO to uma_zalloc 2018-07-12 22:48:18 +00:00
kern_dtrace.c systrace: track it like sdt probes 2018-04-27 15:16:34 +00:00
kern_dump.c Print the dump progress indicator after calling dump_start(). 2018-05-01 17:32:43 +00:00
kern_environment.c kern_environment: Give the static environment a chance to disable MD env 2018-07-12 02:51:50 +00:00
kern_et.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_event.c Allow a EVFILT_TIMER kevent to be updated. 2018-07-27 13:49:17 +00:00
kern_exec.c Round down the location of execpathp to slightly improve copyout speed. 2018-07-13 11:32:27 +00:00
kern_exit.c Add PROC_PDEATHSIG_SET to procctl interface. 2018-04-18 21:31:13 +00:00
kern_fail.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_ffclock.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_fork.c fork: avoid endless wait with PTRACE_FORK and RFSTOPPED. 2018-06-21 21:12:49 +00:00
kern_hhook.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_idle.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_intr.c safer wait-free iteration of shared interrupt handlers 2018-08-03 14:27:28 +00:00
kern_jail.c Add allow.mlock to jail parameters 2018-07-29 12:41:56 +00:00
kern_khelp.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_kthread.c hwpmc: log name->pid, name->tid mappings 2018-06-05 04:26:40 +00:00
kern_ktr.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_ktrace.c Reduce overhead of ktrace checks in the common case. 2018-05-09 00:00:47 +00:00
kern_linker.c Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
kern_lock.c lockmgr: tidy up slock/sunlock similar to other locks 2018-07-13 22:40:14 +00:00
kern_lockf.c lockf: annotate LOCKF_DEBUG only var 2018-05-19 05:04:38 +00:00
kern_lockstat.c lockstat: track lockstat just like sdt probes 2018-04-24 01:04:10 +00:00
kern_loginclass.c call racct_proc_ucred_changed() under the proc lock 2018-04-20 13:08:04 +00:00
kern_malloc.c Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
kern_mbuf.c Add an mbuf allocator for netdump. 2018-05-06 00:19:48 +00:00
kern_mib.c clk: Put the sysctls under hw.clock instead of clock 2018-04-27 00:12:00 +00:00
kern_module.c Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
kern_mtxpool.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_mutex.c Remove an unused argument to turnstile_unpend. 2018-06-02 22:37:53 +00:00
kern_ntptime.c Fix several leaks of kernel stack data through paddings. 2018-03-27 18:05:51 +00:00
kern_osd.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_physio.c physio: avoid uninitialized variables 2018-05-19 04:09:58 +00:00
kern_pmc.c hwpmc: simplify calling convention for hwpmc interrupt handling 2018-06-08 04:58:03 +00:00
kern_poll.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_priv.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_proc.c Add a way for the process to request cleanup of the kernel cache of 2018-07-04 13:22:48 +00:00
kern_procctl.c Rename PROC_PDEATHSIG_SET -> PROC_PDEATHSIG_CTL and PROC_PDEATHSIG_GET 2018-04-20 15:19:27 +00:00
kern_prot.c call racct_proc_ucred_changed() under the proc lock 2018-04-20 13:08:04 +00:00
kern_racct.c call racct_proc_ucred_changed() under the proc lock 2018-04-20 13:08:04 +00:00
kern_rangelock.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_rctl.c call racct_proc_ucred_changed() under the proc lock 2018-04-20 13:08:04 +00:00
kern_resource.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
kern_rmlock.c Remove an unused argument to turnstile_unpend. 2018-06-02 22:37:53 +00:00
kern_rwlock.c Remove an unused argument to turnstile_unpend. 2018-06-02 22:37:53 +00:00
kern_sdt.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_sema.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_sendfile.c Revert second chunk of r333860. The warning from gcc is false positive. The 2018-05-29 21:45:15 +00:00
kern_sharedpage.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
kern_shutdown.c remove unused variable 2018-05-19 03:55:42 +00:00
kern_sig.c Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
kern_switch.c make critical_{enter, exit} inline 2018-07-03 01:55:09 +00:00
kern_sx.c sx: fixup a braino in r334024 2018-05-22 15:13:25 +00:00
kern_synch.c Reduce sdt-related branch-fest in mi_switch. 2018-05-22 08:27:33 +00:00
kern_syscalls.c fix a typo resulting in a wrong variable in kern_syscall_deregister 2018-08-02 09:41:55 +00:00
kern_sysctl.c Permit the kernel environment to set an array of numeric values for a single 2018-06-20 20:04:20 +00:00
kern_tc.c Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
kern_thr.c Don't acquire evclass_lock with a spinlock held 2018-07-11 19:38:42 +00:00
kern_thread.c Don't acquire evclass_lock with a spinlock held 2018-07-11 19:38:42 +00:00
kern_time.c Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
kern_timeout.c Remove some, but not all, assumptions that the BSP is CPU 0 and that CPUs 2017-11-25 23:41:05 +00:00
kern_tslog.c Code for recording timestamps of events, especially function entries/exits. 2017-12-31 09:21:01 +00:00
kern_umtx.c Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
kern_uuid.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
kern_xxx.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
ksched.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
link_elf_obj.c Delete an XXX comment addressed by r336505. 2018-07-19 20:11:08 +00:00
link_elf.c Provide the full module path to preload_delete_name(). 2018-07-19 19:50:42 +00:00
linker_if.m sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
Make.tags.inc
Makefile Don't use an .OBJDIR for 'make sysent'. 2018-01-29 19:14:15 +00:00
makesyscalls.sh makesyscalls: simplify capenabled pipeline 2018-06-11 18:57:40 +00:00
md4c.c SPDX: some uses of the RSA-MD license. 2017-12-13 16:30:39 +00:00
md5c.c crypto routines: Hint minimum buffer sizes to the compiler 2016-05-26 19:29:29 +00:00
msi_if.m Introduce MSI and MSI-X support to intrng. This adds a new msi device 2016-05-16 09:11:40 +00:00
p1003_1b.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
pic_if.m INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
posix4_mib.c Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
sched_4bsd.c Create a new macro for static DPCPU data. 2018-07-05 17:13:37 +00:00
sched_ule.c Fix the long term ULE load balancer so that it actually works. The 2018-07-29 00:30:06 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_acl_posix1e.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_autoconf.c Instrument "boot holds" for the benefit of the TSLOG framework. These 2017-12-31 09:23:52 +00:00
subr_blist.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_boot.c Create helper functions for parsing boot args. 2018-07-13 16:43:05 +00:00
subr_bufring.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_bus_dma.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_bus.c remove unneeded inclusion of sys/interrupt.h from several files 2018-07-04 09:07:18 +00:00
subr_busdma_bufalloc.c Implement NUMA support in uma(9) and malloc(9). Allocations from specific 2018-01-12 23:25:05 +00:00
subr_capability.c kern_sendit: use pre-initialized rights 2018-05-23 01:48:09 +00:00
subr_clock.c Replace the existing print_ct() private debugging function with a set of 2018-02-12 16:25:56 +00:00
subr_compressor.c Fix the test for SET_FOREACH termination. 2018-02-15 17:35:40 +00:00
subr_counter.c Fix pre-SI_SUB_CPU initialization of per-CPU counters. 2018-07-10 00:18:12 +00:00
subr_devmap.c Raise the size of L3 table for early devmap on arm64 2018-07-19 21:58:06 +00:00
subr_devstat.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_disk.c Implement a 'car limit' for bioq. 2018-06-13 16:48:07 +00:00
subr_dummy_vdso_tc.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
subr_epoch.c epoch(9): simplify initialization 2018-07-06 06:20:03 +00:00
subr_eventhandler.c Fix initialization of eventhandler mutex. 2018-03-19 22:43:27 +00:00
subr_fattime.c Use const pointers for input data not modified by clock utility functions. 2018-02-06 22:17:01 +00:00
subr_firmware.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_gtaskqueue.c iflib: mark irq allocation name parameter as constant 2018-05-29 21:56:39 +00:00
subr_hash.c Unsign some values related to allocation. 2018-01-22 02:08:10 +00:00
subr_hints.c subr_hints: Skip static_env and static_hints if they don't contain hints 2018-07-10 00:36:37 +00:00
subr_inflate.c There's two files in the sys tree named inflate.c, in addition 2018-07-13 17:41:28 +00:00
subr_intr.c Fix compile error with option DEBUG. This is fallout from some long-ago 2017-08-16 16:51:55 +00:00
subr_kdb.c Instead of using hand-rolled loops where not needed switch them 2018-06-20 11:42:06 +00:00
subr_kobj.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_lock.c locks: tweak backoff a little bit 2018-04-08 16:34:10 +00:00
subr_log.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_mchain.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_module.c Have preload_delete_name() free pages backing preloaded data. 2018-07-19 20:00:28 +00:00
subr_msgbuf.c Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
subr_param.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_pcpu.c Ensure the DPCPU and VNET module spaces are aligned to hold a pointer. 2018-07-30 14:25:17 +00:00
subr_pctrie.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_pidctrl.c When pidctrl_daemon() is called multiple times within an interval, it 2018-06-07 07:48:50 +00:00
subr_power.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_prf.c Add a FALLTHROUGH comment to kvprintf(). 2018-07-17 14:56:54 +00:00
subr_prof.c ANSIfy sys/kern 2018-06-01 13:26:45 +00:00
subr_rman.c Add new bus methods for mapping resources. 2016-05-20 17:57:47 +00:00
subr_rtc.c Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
subr_sbuf.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_scanf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sfbuf.c Remove SFBUF_OPTIONAL_DIRECT_MAP and such hacks, replacing them across the 2018-01-19 17:46:31 +00:00
subr_sglist.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sleepqueue.c turnstile / sleepqueue: annotate variables only used by debug builds 2018-05-19 05:00:16 +00:00
subr_smp.c Use resume_cpus() instead of restart_cpus() to resume from ACPI suspension. 2017-12-21 09:17:48 +00:00
subr_stack.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_syscall.c systrace: track it like sdt probes 2018-04-27 15:16:34 +00:00
subr_taskqueue.c Revert r327828, r327949, r327953, r328016-r328026, r328041: 2018-01-21 15:42:36 +00:00
subr_terminal.c teken, vt(4): New callbacks to lock the terminal once 2018-05-16 09:01:02 +00:00
subr_trap.c hwpmc: support sampling both kernel and user stacks when interrupted in kernel 2018-06-04 01:10:23 +00:00
subr_turnstile.c Remove an unused argument to turnstile_unpend. 2018-06-02 22:37:53 +00:00
subr_uio.c simplify control flow so that gcc knows we never pass save to curthread_pflags_restore 2018-05-19 04:04:44 +00:00
subr_unit.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
subr_vmem.c Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
subr_witness.c convert inpcbinfo hash and info rwlocks to epoch + mutex 2018-06-19 01:54:00 +00:00
sys_capability.c capsicum: propagate const correctness 2018-05-19 05:14:05 +00:00
sys_generic.c Fix the build after r333457 2018-05-10 13:19:42 +00:00
sys_getrandom.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
sys_pipe.c ANSIfy sys/kern 2018-06-01 13:26:45 +00:00
sys_procdesc.c Eliminate the overhead of gratuitous repeated reinitialization of cap_rights 2018-05-09 18:47:24 +00:00
sys_process.c Update proc->p_ptevents annotation to reflect the actual locking. 2018-06-21 21:07:25 +00:00
sys_socket.c Ensure that the vnet is set when calling pru_sockaddr() and 2018-01-11 20:26:17 +00:00
syscalls.c Regen after r336171. 2018-07-10 14:04:52 +00:00
syscalls.master Get rid of netbsd_lchown and netbsd_msync syscall entries. 2018-07-10 13:32:04 +00:00
systrace_args.c Regen after r336171. 2018-07-10 14:04:52 +00:00
sysv_ipc.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
sysv_msg.c ANSIfy sys/kern 2018-06-01 13:26:45 +00:00
sysv_sem.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
sysv_shm.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
tty_compat.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
tty_info.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tty_inq.c tty: use __unused annotation instead to silence warnings 2018-05-19 04:48:26 +00:00
tty_outq.c tty: use __unused annotation instead to silence warnings 2018-05-19 04:48:26 +00:00
tty_pts.c Move uio enums to sys/_uio.h. 2018-03-27 15:20:03 +00:00
tty_tty.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
tty_ttydisc.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
tty.c Revert r335995 due to accidental changes snuck in 2018-07-05 16:28:43 +00:00
uipc_accf.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
uipc_debug.c Load balance sockets with new SO_REUSEPORT_LB option. 2018-06-06 15:45:57 +00:00
uipc_domain.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbuf2.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbuf.c Add a SPD cache to speed up lookups. 2018-05-22 15:54:25 +00:00
uipc_mbufhash.c
uipc_mqueue.c Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
uipc_sem.c Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
uipc_shm.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
uipc_sockbuf.c Remove a redundant check. 2018-07-30 17:58:41 +00:00
uipc_socket.c Use uintptr_t alone when assigning to kvaddr_t variables. 2018-07-10 13:03:06 +00:00
uipc_syscalls.c Fix LOCAL_PEERCRED with socketpair(2) 2018-08-03 01:37:00 +00:00
uipc_usrreq.c Fix LOCAL_PEERCRED with socketpair(2) 2018-08-03 01:37:00 +00:00
vfs_acl.c Reduce duplication in __acl_*_(file|link). 2018-02-15 21:24:43 +00:00
vfs_aio.c Eliminate the overhead of gratuitous repeated reinitialization of cap_rights 2018-05-09 18:47:24 +00:00
vfs_bio.c Avoid completing I/O when dumping core after a panic. 2018-06-01 23:49:32 +00:00
vfs_cache.c Sometimes it is helpful to get the path for a vnode. 2018-06-20 08:34:29 +00:00
vfs_cluster.c ANSIfy sys/kern 2018-06-01 13:26:45 +00:00
vfs_default.c vfs: simplify vop_stdlock/unlock 2018-05-20 04:45:05 +00:00
vfs_export.c Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
vfs_extattr.c Reduce duplication in extattr_*_(file|link) syscalls. 2018-02-05 19:06:34 +00:00
vfs_hash.c sys/kern: adoption of SPDX licensing ID tags. 2017-11-27 15:20:12 +00:00
vfs_init.c Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
vfs_lookup.c vfs: annotate variables only used by debug builds as __unused 2018-05-19 04:59:39 +00:00
vfs_mount.c Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
vfs_mountroot.c Remove Giant from init creation and vfs_mountroot. 2018-03-21 14:46:54 +00:00
vfs_subr.c Revert r334708 2018-06-06 15:12:19 +00:00
vfs_syscalls.c Fix the encoding of major and minor numbers in 64-bit dev_t by restoring 2018-06-13 12:22:00 +00:00
vfs_vnops.c ANSIfy sys/kern 2018-06-01 13:26:45 +00:00
vnode_if.src Use long for the last argument to VOP_PATHCONF rather than a register_t. 2018-01-17 22:36:58 +00:00