freebsd-dev/sys/kern
Kirk McKusick cd6005961f When downgrading a filesystem from read-write to read-only, operations
involving file removal or file update were not always being fully
committed to disk. The result was lost files or corrupted file data.
This change ensures that the filesystem is properly synced to disk
before the filesystem is down-graded.

This delta also fixes a long standing bug in which a file open for
reading has been unlinked. When the last open reference to the file
is closed, the inode is reclaimed by the filesystem. Previously,
if the filesystem had been down-graded to read-only, the inode could
not be reclaimed, and thus was lost and had to be later recovered
by fsck.  With this change, such files are found at the time of the
down-grade.  Normally they will result in the filesystem down-grade
failing with `device busy'. If a forcible down-grade is done, then
the affected files will be revoked causing the inode to be released
and the open file descriptors to begin failing on attempts to read.

Submitted by:	"Sam Leffler" <sam@errno.com>
2002-01-15 07:17:12 +00:00
..
bus_if.m
device_if.m
genassym.sh brace by itself after function declaration. 2001-12-27 20:16:21 +00:00
imgact_aout.c
imgact_elf.c Remove whitespace at end of line. 2001-12-16 17:21:16 +00:00
imgact_gzip.c
imgact_shell.c
inflate.c
init_main.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
init_sysent.c Make AIO a loadable module. 2001-12-29 07:13:47 +00:00
kern_acct.c
kern_acl.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
kern_cap.c
kern_clock.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_condvar.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_conf.c Add a new sysinit SI_SUB_DEVFS. Devfs hooks into the kernel at SI_ORDER_FIRST, 2002-01-09 04:58:49 +00:00
kern_descrip.c Push down Giant in dup(2) and dup2(2), Giant is only needed when 2002-01-15 00:58:40 +00:00
kern_environment.c
kern_event.c Replace ffind_* with fget calls. 2002-01-14 00:13:45 +00:00
kern_exec.c o Call the functions registered with at_exec() from exec_new_vmspace() 2002-01-13 19:36:35 +00:00
kern_exit.c Release text vnode in exit() rather than wait(). Occasionally 2002-01-05 21:47:58 +00:00
kern_fork.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
kern_idle.c Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
kern_intr.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_jail.c - Move _jail sysctl node underneath _kern_security in order to standardize 2001-12-12 05:23:20 +00:00
kern_kthread.c Use a different mechanism to get the vnlru process to wake up and notice 2001-12-19 01:31:12 +00:00
kern_ktr.c Print parm6 too in the !KTR_EXTEND case. 2002-01-01 21:47:38 +00:00
kern_ktrace.c
kern_linker.c
kern_lock.c Fix a BUF_TIMELOCK race against BUF_LOCK and fix a deadlock in vget() 2001-12-20 22:42:27 +00:00
kern_lockf.c
kern_malloc.c
kern_mib.c Add/correct description for some sysctl variables where it was missing. 2001-12-16 16:07:20 +00:00
kern_module.c
kern_mtxpool.c
kern_mutex.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_ntptime.c
kern_physio.c
kern_poll.c Complete the device polling support by adding a thread in charge 2001-12-19 00:53:24 +00:00
kern_proc.c Fix a bug where the mutex name wasn't always displayed for processes in 2002-01-05 17:18:59 +00:00
kern_prot.c - Push much of the logic for p_cansignal() behind cr_cansignal, which 2002-01-06 00:20:12 +00:00
kern_random.c
kern_resource.c
kern_sema.c Repeat after me -- "Use of ANSI string concatenation can be bad." 2001-12-10 05:40:12 +00:00
kern_shutdown.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_sig.c o Revert kern_sig.c#1.143, as cr_cansignal() doesn't currently permit 2002-01-10 01:25:35 +00:00
kern_subr.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_switch.c Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
kern_sx.c Update to C99, s/__FUNCTION__/__func__/. 2001-12-10 05:51:45 +00:00
kern_synch.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_syscalls.c
kern_sysctl.c Add code to export and print the description associated to sysctl 2001-12-16 02:55:41 +00:00
kern_tc.c
kern_time.c
kern_timeout.c
kern_xxx.c
ksched.c
link_aout.c
link_elf_obj.c
link_elf.c
linker_if.m
Make.tags.inc
Makefile
makeobjops.pl
makesyscalls.sh
md4c.c
md5c.c
p1003_1b.c
posix4_mib.c
subr_acl_posix1e.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
subr_autoconf.c
subr_blist.c
subr_bus.c Fixed an apparent typo ("-" before ":") and an English error (comma 2001-12-28 18:32:13 +00:00
subr_clist.c
subr_devstat.c
subr_disk.c
subr_disklabel.c Fix typo so that the delay code introduced in revision 1.60 actually 2002-01-12 02:04:15 +00:00
subr_diskmbr.c Wrap Dangerously Dedicated printf under if (bootverbose) 2001-12-11 05:35:43 +00:00
subr_diskslice.c
subr_eventhandler.c
subr_hints.c
subr_kobj.c
subr_log.c
subr_mbuf.c On the first day of Christmas bde gave to me: 2001-12-23 22:04:08 +00:00
subr_mchain.c Update to C99, s/__FUNCTION__/__func__/. 2001-12-10 05:51:45 +00:00
subr_module.c
subr_param.c Proper fix for old config setting maxusers to 8. 2001-12-14 09:39:29 +00:00
subr_pcpu.c Add a per-cpu variable, cpumask, the preshifted equivalent of 1 << cpuid. 2002-01-05 09:35:50 +00:00
subr_power.c
subr_prf.c
subr_prof.c - Change all callers of addupc_task() to check PS_PROFIL explicitly and 2001-12-18 09:06:10 +00:00
subr_rman.c Add a rman_reserve_resource_bound() function that takes an additional 2001-12-21 21:40:55 +00:00
subr_sbuf.c Replace spaces after #defines with tabs; this makes all #defines 2002-01-09 07:29:28 +00:00
subr_scanf.c
subr_smp.c Fix forward_roundrobin(). It was mistakenly using the cpu number as 2002-01-05 09:38:47 +00:00
subr_taskqueue.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
subr_trap.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
subr_turnstile.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
subr_witness.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
subr_xxx.c
sys_generic.c Replace ffind_* with fget calls. 2002-01-14 00:13:45 +00:00
sys_pipe.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
sys_process.c
sys_socket.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
syscalls.c
syscalls.master Make AIO a loadable module. 2001-12-29 07:13:47 +00:00
sysv_ipc.c Eliminate semexit_hook using at_exit(9) and rm_at_exit(9). 2001-12-30 18:55:09 +00:00
sysv_msg.c Make AIO a loadable module. 2001-12-29 07:13:47 +00:00
sysv_sem.c Eliminate semexit_hook using at_exit(9) and rm_at_exit(9). 2001-12-30 18:55:09 +00:00
sysv_shm.c Make AIO a loadable module. 2001-12-29 07:13:47 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Fix boot -p for DDBless kernels 2001-12-11 10:21:26 +00:00
tty_pty.c
tty_subr.c
tty_tty.c
tty.c
uipc_accf.c
uipc_domain.c Update the comment about System initialization to reflect the use of 2001-12-08 04:20:54 +00:00
uipc_mbuf2.c
uipc_mbuf.c Update to C99, s/__FUNCTION__/__func__/. 2001-12-10 05:51:45 +00:00
uipc_proto.c
uipc_sockbuf.c Revert 1.81; 1.19 fixed this already in a different way. 2002-01-09 01:45:17 +00:00
uipc_socket2.c Revert 1.81; 1.19 fixed this already in a different way. 2002-01-09 01:45:17 +00:00
uipc_socket.c Fix select on fifos. 2002-01-14 22:03:48 +00:00
uipc_syscalls.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
uipc_usrreq.c Remove a bogus FILEDESC_UNLOCK. 2002-01-14 19:45:03 +00:00
vfs_acl.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
vfs_aio.c o Correct the initialization of aiolio_zone: Each entry was 16 times larger 2002-01-14 07:26:33 +00:00
vfs_bio.c This fixes a large number of bugs in our NFS client side code. A recent 2001-12-14 01:16:57 +00:00
vfs_cache.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
vfs_cluster.c
vfs_conf.c
vfs_default.c
vfs_export.c
vfs_extattr.c Replace ffind_* with fget calls. 2002-01-14 00:13:45 +00:00
vfs_init.c
vfs_lookup.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
vfs_mount.c
vfs_subr.c When downgrading a filesystem from read-write to read-only, operations 2002-01-15 07:17:12 +00:00
vfs_syscalls.c Replace ffind_* with fget calls. 2002-01-14 00:13:45 +00:00
vfs_vnops.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
vnode_if.pl Throw the $FreeBSD$s back in, properly escaping them. 2002-01-04 05:27:47 +00:00
vnode_if.src