freebsd-nq/sys/kern
Kirk McKusick e6796b67d9 Move the truncation code out of vn_open and into the open system call
after the acquisition of any advisory locks. This fix corrects a case
in which a process tries to open a file with a non-blocking exclusive
lock. Even if it fails to get the lock it would still truncate the
file even though its open failed. With this change, the truncation
is done only after the lock is successfully acquired.

Obtained from:	 BSD/OS
2000-07-04 03:34:11 +00:00
..
bus_if.m * Factor out the object system from new-bus so that it can be used by 2000-04-08 14:17:18 +00:00
device_if.m * Factor out the object system from new-bus so that it can be used by 2000-04-08 14:17:18 +00:00
genassym.sh Use "nm | awk ..." instead of genassym(1) to generate symbol value headers. 2000-06-02 09:27:48 +00:00
imgact_aout.c Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
imgact_elf.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
imgact_gzip.c useracc() the prequel: 1999-10-29 18:09:36 +00:00
imgact_shell.c Fix #! script exec under linux emulation. If a script is exec'd from a 2000-04-26 20:58:40 +00:00
inflate.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
init_main.c Remove no-longer-relevant comment. 2000-06-25 10:14:06 +00:00
init_sysent.c Second of two commits adding capability manipulation syscalls for 2000-06-15 23:27:18 +00:00
kern_accf.c return of the accept filter part II 2000-06-20 01:09:23 +00:00
kern_acct.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
kern_acl.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
kern_cap.c Introduce additional POSIX.1e-related stubs 2000-06-07 04:53:49 +00:00
kern_clock.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_conf.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_descrip.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_environment.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_event.c Report a file type (S_IFIFO) in kqueue_stat(). 2000-06-28 19:16:27 +00:00
kern_exec.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
kern_exit.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
kern_fork.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_intr.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
kern_jail.c o Modify jail to limit creation of sockets to UNIX domain sockets, 2000-06-04 04:28:31 +00:00
kern_kthread.c Panic if proc0 hasn't been created and we try to call kthread_create. 2000-01-10 08:00:58 +00:00
kern_ktrace.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
kern_linker.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
kern_lock.c Eliminate the undocumented, experimental, non-delivering and highly 2000-03-16 08:51:55 +00:00
kern_lockf.c Commit the remaining part of PR14914: 1999-11-16 16:28:58 +00:00
kern_malloc.c Move #ifdef to the right place. 2000-06-29 09:26:26 +00:00
kern_mib.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_module.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_ntptime.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_physio.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
kern_proc.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_prot.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
kern_resource.c fix a typo 2000-06-10 19:21:20 +00:00
kern_shutdown.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_sig.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
kern_subr.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_switch.c Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
kern_synch.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_syscalls.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
kern_sysctl.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_tc.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
kern_threads.c
kern_time.c Remove unneeded <sys/buf.h> includes. 2000-04-18 15:15:39 +00:00
kern_timeout.c
kern_xxx.c
ksched.c Remove unneeded #include <sys/kernel.h> 2000-04-29 15:36:14 +00:00
link_aout.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
link_elf_obj.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
link_elf.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
linker_if.m First round implementation of a fine grain enhanced module to module 2000-04-29 13:19:31 +00:00
Make.tags.inc Update tags directive to reflect the new location of soft updates 2000-07-04 00:18:43 +00:00
makedevops.pl Fix some bugs in user-end output and add a reference to the original 1999-11-22 14:40:04 +00:00
Makefile ${MACHINE} -> ${MACHINE_ARCH} 1999-11-14 13:54:44 +00:00
makeobjops.pl * Factor out the object system from new-bus so that it can be used by 2000-04-08 14:17:18 +00:00
makesyscalls.sh Fixed the calculation of sy_nargs in sysent tables. We attempted to do 2000-05-09 21:18:30 +00:00
md5c.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
p1003_1b.c Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
posix4_mib.c Add $FreeBSD$. 2000-04-22 15:13:06 +00:00
subr_acl_posix1e.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
subr_autoconf.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
subr_blist.c Eliminate the undocumented, experimental, non-delivering and highly 2000-03-16 08:51:55 +00:00
subr_bus.c Add device_set_softc() which does the obvious. 2000-07-03 13:06:29 +00:00
subr_clist.c
subr_devstat.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
subr_disk.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
subr_disklabel.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
subr_diskmbr.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
subr_diskslice.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
subr_eventhandler.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
subr_kobj.c * Move the driver_t::refs field to kobj_t to replace kobj_t::instances. 2000-05-01 10:45:15 +00:00
subr_log.c
subr_module.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
subr_param.c Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
subr_prf.c Do not fault if curproc is null. 2000-04-29 11:32:15 +00:00
subr_prof.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
subr_rman.c Replace all the ifdef debugging spaghetti with a single ifdef and 2000-05-03 00:20:36 +00:00
subr_scanf.c Change the prototype of the strto* routines to make the second 1999-11-24 01:03:08 +00:00
subr_smp.c Further fixes for multiple-IO-APIC systems from Tor Egge: 2000-05-31 21:37:28 +00:00
subr_taskqueue.c Add taskqueue system for easy-to-use SWIs among other things. 2000-05-28 15:45:30 +00:00
subr_trap.c Fix my own style bugs (use of spaces instead of tabs for indentation). 2000-07-01 02:40:13 +00:00
subr_xxx.c
sys_generic.c Modify ktrace's general I/O tracing, ktrgenio(), to use a struct uio * 2000-07-02 08:08:09 +00:00
sys_pipe.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
sys_process.c Introduce the new function 1999-11-21 19:03:20 +00:00
sys_socket.c Instead of just blindly setting -rw-rw-rw-: 2000-07-02 23:56:45 +00:00
syscalls.c Second of two commits adding capability manipulation syscalls for 2000-06-15 23:27:18 +00:00
syscalls.master Introduce syscalls for process capability manipulation. Currently backs 2000-06-15 23:08:17 +00:00
sysv_ipc.c Remove the undocumented, flawed, broken-as-designed semconfig() syscall. 2000-05-01 11:13:41 +00:00
sysv_msg.c Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
sysv_sem.c Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
sysv_shm.c This is a cleanup patch to Peter's new OBJT_PHYS VM object type 2000-05-29 22:40:54 +00:00
tty_compat.c
tty_conf.c Don't refer to TABLDISC in the comments here. 2000-01-30 10:14:13 +00:00
tty_cons.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
tty_pty.c Unused include: #include "pty.h" 2000-06-10 07:12:40 +00:00
tty_snoop.c Unstaticize this driver. You can have as many snoop devices as you can 2000-04-02 00:35:37 +00:00
tty_subr.c
tty_tty.c
tty.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
uipc_accf.c return of the accept filter part II 2000-06-20 01:09:23 +00:00
uipc_domain.c
uipc_mbuf.c Actively limit the allocation of mbufs to NMBUFS/nmbufs and mbuf clusters 1999-12-28 06:35:57 +00:00
uipc_proto.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
uipc_sockbuf.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
uipc_socket2.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
uipc_socket.c fix races in the uidinfo subsystem, several problems existed: 2000-06-22 22:27:16 +00:00
uipc_syscalls.c Modify ktrace's general I/O tracing, ktrgenio(), to use a struct uio * 2000-07-02 08:08:09 +00:00
uipc_usrreq.c Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: 2000-07-03 09:35:31 +00:00
vfs_acl.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
vfs_aio.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
vfs_bio.c Virtualizes & untangles the bioops operations vector. 2000-06-16 08:48:51 +00:00
vfs_cache.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
vfs_cluster.c Virtualizes & untangles the bioops operations vector. 2000-06-16 08:48:51 +00:00
vfs_conf.c Make a trip to Pointy-Hats-R-Us and actually include the header that 2000-05-22 17:25:47 +00:00
vfs_default.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
vfs_export.c If a buffer flush fails when trying to reclaim a vnode, it is too 2000-07-04 03:23:29 +00:00
vfs_extattr.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
vfs_init.c The sysctl mod_xx hack is no longer required now that we have totally 1999-12-12 16:30:34 +00:00
vfs_lookup.c Introduce NDFREE (and remove VOP_ABORTOP) 1999-12-15 23:02:35 +00:00
vfs_mount.c Make a trip to Pointy-Hats-R-Us and actually include the header that 2000-05-22 17:25:47 +00:00
vfs_subr.c If a buffer flush fails when trying to reclaim a vnode, it is too 2000-07-04 03:23:29 +00:00
vfs_syscalls.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
vfs_vnops.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
vnode_if.pl remove crufty exec stuff, perl is in the base system 2000-06-27 19:09:55 +00:00
vnode_if.src Second pass commit to introduce new ACL and Extended Attribute system 1999-12-19 06:08:07 +00:00