freebsd-skq/sys/sys
mckusick a3d0c189ea Add snapshots to the fast filesystem. Most of the changes support
the gating of system calls that cause modifications to the underlying
filesystem. The gating can be enabled by any filesystem that needs
to consistently suspend operations by adding the vop_stdgetwritemount
to their set of vnops. Once gating is enabled, the function
vfs_write_suspend stops all new write operations to a filesystem,
allows any filesystem modifying system calls already in progress
to complete, then sync's the filesystem to disk and returns. The
function vfs_write_resume allows the suspended write operations to
begin again. Gating is not added by default for all filesystems as
for SMP systems it adds two extra locks to such critical kernel
paths as the write system call. Thus, gating should only be added
as needed.

Details on the use and current status of snapshots in FFS can be
found in /sys/ufs/ffs/README.snapshot so for brevity and timelyness
is not included here. Unless and until you create a snapshot file,
these changes should have no effect on your system (famous last words).
2000-07-11 22:07:57 +00:00
..
_posix.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
_sigset.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
acct.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
acl.h Fix man page structures/constants to match recent changes in acl.h 2000-01-28 15:22:51 +00:00
agpio.h A driver for programming the AGP hardware. This is only very lightly 2000-06-09 16:04:30 +00:00
aio.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
assym.h Use "nm | awk ..." instead of genassym(1) to generate symbol value headers. 2000-06-02 09:27:48 +00:00
bio.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
bitstring.h
blist.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
buf.h Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
bus_dma.h Fixed syntax errors and style bugs in previous commit. The syntax 2000-06-14 18:48:39 +00:00
bus_private.h Add device_set_softc() which does the obvious. 2000-07-03 13:06:29 +00:00
bus.h Add device_set_softc() which does the obvious. 2000-07-03 13:06:29 +00:00
callout.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
capability.h o Introduce cap_{get,set}_{file,fd}() syscall wrappers, associated with 2000-07-05 04:20:59 +00:00
ccdvar.h Cleanup some remaining bdev fluff. 2000-01-16 09:25:10 +00:00
cdefs.h Use __alias__ instead of alias in the definition of __strong_reference(). 2000-03-18 22:26:54 +00:00
cdio.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
cdrio.h New ATAPI burner utility. Replaces wormcontrol. 2000-01-06 22:46:20 +00:00
chio.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
clist.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
conf.h Pull the rug under block mode devices. they return ENXIO on open(2) now. 2000-07-03 13:48:37 +00:00
cons.h Add a new mechanism, cndbctl(), to tell the console driver that 2000-01-11 14:54:01 +00:00
consio.h Supported EGC 640x400, PEGC 640x400 and PEGC 640x480 graphics modes. 2000-04-27 13:34:32 +00:00
copyright.h MFS: adjust University of California's copyright. 2000-07-07 18:35:11 +00:00
ctype.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
dataacq.h Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
devfsext.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
devicestat.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
dir.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
dirent.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
disk.h Add disk_enumerate() for finding names of disks. Vinum and libh will 2000-06-15 20:30:53 +00:00
disklabel.h Define more DOSPTYP_* constants for different filesystem types 2000-04-30 02:33:40 +00:00
diskmbr.h Define more DOSPTYP_* constants for different filesystem types 2000-04-30 02:33:40 +00:00
diskpc98.h Define more DOSPTYP_* constants for different filesystem types 2000-04-30 02:33:40 +00:00
diskslice.h Removed a stale forward struct declaration. 2000-04-30 06:47:24 +00:00
dkstat.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
dmap.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
domain.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
dvdio.h Add support for the DVD ioctl interface. 2000-05-12 03:36:02 +00:00
elf32.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
elf64.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
elf_common.h Change our ELF binary branding to something more acceptable to the Binutils 2000-04-18 02:39:26 +00:00
elf_generic.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
errno.h Add ENOTSUP, which is specified as an error return value for various 2000-05-02 06:02:11 +00:00
event.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
eventhandler.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
eventvar.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
exec.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
extattr.h Fix bde'isms in acl/extattr syscall interface, renaming syscalls to 2000-01-19 06:07:34 +00:00
fbio.h Supported EGC 640x400, PEGC 640x400 and PEGC 640x480 graphics modes. 2000-04-27 13:34:32 +00:00
fcntl.h Implement POSIX.1b shared memory objects. In this implementation, 2000-04-22 15:22:31 +00:00
fdcio.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
file.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
filedesc.h Fixed disordering and misformatting in previous commit. 2000-06-14 18:38:44 +00:00
filio.h Commit the kernel part of our DVD support. Nothing much to say really, 1999-12-07 22:25:28 +00:00
gmon.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
imgact_aout.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
imgact_elf.h Change Elf64_Brandinfo::brand from char* to int. 2000-04-28 08:53:23 +00:00
imgact.h Fix #! script exec under linux emulation. If a script is exec'd from a 2000-04-26 20:58:40 +00:00
inflate.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
interrupt.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
inttypes.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ioccom.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ioctl_bt848.h Add multiple #include protection 2000-04-04 16:46:19 +00:00
ioctl_compat.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ioctl_meteor.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ioctl.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ipc.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
jail.h o Modify jail to limit creation of sockets to UNIX domain sockets, 2000-06-04 04:28:31 +00:00
joystick.h Switch over to using the generic joy driver 1999-12-05 20:02:19 +00:00
kbio.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
kernel.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kobj.h Fixed a syntax error (a stray semicolon caused by a bogus #define). 2000-05-11 17:10:22 +00:00
kthread.h Introduce a mechanism to suspend/resume system processes. Suspend syncer 2000-01-07 08:36:44 +00:00
ktrace.h Modify ktrace's general I/O tracing, ktrgenio(), to use a struct uio * 2000-07-02 08:08:09 +00:00
libkern.h Zap c_index() and c_rindex(). Bruce prefers these to implicitly convert 1999-12-10 17:38:41 +00:00
linedisc.h Pull the rug under block mode devices. they return ENXIO on open(2) now. 2000-07-03 13:48:37 +00:00
link_aout.h $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
link_elf.h $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
linker_set.h Add a comment explaining the obscure lines: 2000-05-13 04:38:50 +00:00
linker.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
lock.h Lock reporting and assertion changes. 1999-12-11 16:13:02 +00:00
lockf.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
lockmgr.h Lock reporting and assertion changes. 1999-12-11 16:13:02 +00:00
malloc.h sys/malloc.h: 2000-06-14 18:31:42 +00:00
mbuf.h sync with kame tree as of july00. tons of bug fixes/improvements. 2000-07-04 16:35:15 +00:00
md5.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
mdioctl.h Fix a bug in the block number calculation for VN disks with a sector 1999-09-17 05:34:00 +00:00
memrange.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
mman.h Add MAP_NOCORE to mmap(2), and MADV_NOCORE and MADV_CORE to madvise(2). 2000-02-28 04:10:35 +00:00
module.h First round implementation of a fine grain enhanced module to module 2000-04-29 13:19:31 +00:00
mount.h Clean up warning about undeclared function by declaring softdep_fsync 2000-07-11 19:28:26 +00:00
mouse.h - Add Support for the following PS/2 mice: 2000-03-18 15:21:40 +00:00
msg.h Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
msgbuf.h Increase the default msgbuf size from 8k to 32k. Boot -v easily 2000-01-29 15:29:11 +00:00
mtio.h Default device not longer uses the "r" raw prefix. 2000-04-26 11:34:52 +00:00
namei.h Change NDFREE() from a macro to a function for the time being; the macro 2000-01-08 16:20:06 +00:00
nlist_aout.h $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
param.h Bump __FreeBSD_version to note KAME upgrade 2000-07-07 08:39:31 +00:00
pciio.h [ repository copy of sys/pci/pci_ioctl.h to sys/sys/pciio.h happened in the 1999-12-08 17:44:04 +00:00
pioctl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pipe.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
poll.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
posix4.h Fixed some type mismatches. p_retval[0] in struct proc has type 1999-12-27 10:22:09 +00:00
proc.h Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
procfs.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
protosw.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
ptio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ptrace.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
queue.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
random.h Yarrow tweaks; separate the fast and slow reseed tasks so that they don't 2000-07-09 11:52:12 +00:00
reboot.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
resource.h Change the scheduler to actually respect the PUSER barrier. It's been 2000-04-30 18:33:43 +00:00
resourcevar.h Fix a bug that could crash the system if you press ^T while a slower 2000-01-28 20:40:29 +00:00
rman.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
rtprio.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
select.h Introduce kqueue() and kevent(), a kernel event notification facility. 2000-04-16 18:53:38 +00:00
selinfo.h Introduce kqueue() and kevent(), a kernel event notification facility. 2000-04-16 18:53:38 +00:00
sem.h Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
semaphore.h Track libc_r addition of semaphores implementation. 2000-01-20 07:55:42 +00:00
shm.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
signal.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
signalvar.h fix warning, declare function static. 2000-06-22 22:09:31 +00:00
smp.h Further fixes for multiple-IO-APIC systems from Tor Egge: 2000-05-31 21:37:28 +00:00
snoop.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
socket.h return of the accept filter part II 2000-06-20 01:09:23 +00:00
socketvar.h return of the accept filter part II 2000-06-20 01:09:23 +00:00
sockio.h sync with kame tree as of july00. tons of bug fixes/improvements. 2000-07-04 16:35:15 +00:00
soundcard.h Finally merge newmidi. 2000-07-11 11:49:33 +00:00
stat.h Get userland visible flags added for snapshots to give a few days 2000-07-04 04:58:34 +00:00
syscall-hide.h Second of two commits adding capability manipulation syscalls for 2000-06-15 23:27:18 +00:00
syscall.h Second of two commits adding capability manipulation syscalls for 2000-06-15 23:27:18 +00:00
syscall.mk Second of two commits adding capability manipulation syscalls for 2000-06-15 23:27:18 +00:00
sysctl.h Support for unsigned integer and long sysctl variables. Update the 2000-07-05 07:46:41 +00:00
sysent.h Fix #! script exec under linux emulation. If a script is exec'd from a 2000-04-26 20:58:40 +00:00
syslimits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
syslog.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
sysproto.h Second of two commits adding capability manipulation syscalls for 2000-06-15 23:27:18 +00:00
systm.h o bde suggested moving the SYSCTL from kern_mib to the more appropriate 2000-06-05 18:30:55 +00:00
taskqueue.h taskqueue_swi is a pointer, not a struct. Fix a comment that misleadingly 2000-06-09 22:32:36 +00:00
termios.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
time.h Isolate the Timecounter internals in their own two files. 2000-03-20 14:09:06 +00:00
timeb.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
timepps.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
timers.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
times.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
timetc.h Isolate the Timecounter internals in their own two files. 2000-03-20 14:09:06 +00:00
timex.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
tprintf.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
tty.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
ttychars.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ttycom.h Remove the TABLDISC line discipline number, it's not in the tree 2000-01-29 16:47:35 +00:00
ttydefaults.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ttydev.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
types.h Followup to previous commit; change fd_mask from signed to unsigned as 2000-02-20 15:01:37 +00:00
ucontext.h Add a per-signal flag to mark handlers registered with osigaction, so we 1999-10-11 20:33:17 +00:00
ucred.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
uio.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
un.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
unistd.h Implement POSIX.1b shared memory objects. In this implementation, 2000-04-22 15:22:31 +00:00
unpcb.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
user.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
utsname.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
vmmeter.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
vnioctl.h Fix a bug in the block number calculation for VN disks with a sector 1999-09-17 05:34:00 +00:00
vnode.h Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
wait.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
xrpuio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00