freebsd-nq/sys/kern
Boris Popov 3ff1a2f43e Add new flag PDIRUNLOCK to the component.cn_flags which should be set by
filesystem lookup() routine if it unlocks parent directory. This flag should
be carefully tracked by filesystems if they want to work properly with nullfs
and other stacked filesystems.

VFS takes advantage of this flag to perform symantically correct usage
of vrele() instead of vput() if parent directory already unlocked.

If filesystem fails to track this flag then previous codepath in VFS left
unchanged.

Convert UFS code to set PDIRUNLOCK flag if necessary. Other filesystmes will
be changed after some period of testing.

Reviewed in general by:	mckusick, dillon, adrian
Obtained from:	NetBSD
2000-09-17 07:26:42 +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 Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
imgact_elf.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +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 Release Giant before starting up init. 2000-09-15 19:25:29 +00:00
init_sysent.c Regen: fix prototypes for {o|}{g|s}etrlimit. 2000-08-28 07:56:38 +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 o Add missing function return types from capability syscall call stubs, 2000-07-25 03:37:36 +00:00
kern_clock.c Clean up process accounting some more. Unfortunately, it is still not 2000-09-12 18:57:59 +00:00
kern_conf.c revent multiple make_dev() calls on the same dev_t and similar bogosities. 2000-09-11 17:15:33 +00:00
kern_descrip.c Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
kern_environment.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
kern_event.c o Centralize inter-process access control, introducing: 2000-08-30 04:49:09 +00:00
kern_exec.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
kern_exit.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_fork.c Enforce process limit policy in one place to keep proccnt from diverging 2000-09-14 23:07:39 +00:00
kern_idle.c Remove some commented out cruft. 2000-09-15 23:00:46 +00:00
kern_intr.c - Remove the inthand2_t type and use the equivalent driver_intr_t type from 2000-09-13 18:33:25 +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 Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_ktr.c Add KTR, a facility that logs kernel events in order to to facilitate 2000-09-07 01:29:44 +00:00
kern_ktrace.c Add KTR, a facility that logs kernel events in order to to facilitate 2000-09-07 01:29:44 +00:00
kern_linker.c The kernel is now known as `kernel.ko' and it and its matching modules 2000-09-06 06:22:20 +00:00
kern_lock.c Make LINT compile. 2000-09-16 18:55:05 +00:00
kern_lockf.c Commit the remaining part of PR14914: 1999-11-16 16:28:58 +00:00
kern_malloc.c Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just 2000-09-14 20:15:16 +00:00
kern_mib.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
kern_module.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_mutex.c Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just 2000-09-14 20:15:16 +00:00
kern_ntptime.c Updates to the ntp pll from John Hay. 2000-09-10 09:13:34 +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 Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_prot.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
kern_resource.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_shutdown.c Fix some printf format string warnings due to sizeof(int) != sizeof(long) on 2000-09-11 23:55:10 +00:00
kern_sig.c Move the include of <sys/systm.h> so that KTR gets a declaration for 2000-09-10 13:54:52 +00:00
kern_subr.c GC vax-only code 2000-09-14 16:51:47 +00:00
kern_switch.c Idle processes are always runnable, so let them state at SRUN. 2000-09-15 19:49:48 +00:00
kern_synch.c Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just 2000-09-14 20:15:16 +00:00
kern_syscalls.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
kern_sysctl.c Fix some style nits. 2000-07-28 22:40:04 +00:00
kern_tc.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_threads.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_time.c Remove unneeded <sys/buf.h> includes. 2000-04-18 15:15:39 +00:00
kern_timeout.c Restructure TCP timeout handling: 1999-08-30 21:17:07 +00:00
kern_xxx.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
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 Ignore ELF files with 'interpreter' section because KLDs doesn't contain it. 2000-09-06 02:21:43 +00:00
link_elf.c Ignore ELF files with 'interpreter' section because KLDs doesn't contain it. 2000-09-06 02:21:43 +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 Change the 'exit()' system call to 'sys_exit()'. This avoids overlapping 2000-07-29 00:16:28 +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 When we are picking the next available unit number, specifically say 2000-09-05 00:30:46 +00:00
subr_clist.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
subr_devstat.c Support for unsigned integer and long sysctl variables. Update the 2000-07-05 07:46:41 +00:00
subr_disk.c Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
subr_disklabel.c Turn dkcksum() into an __inline function. 2000-09-16 13:43:00 +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 Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +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 Add kobj_class_compile_static() to allow classes to be initialised 2000-08-28 21:11:12 +00:00
subr_log.c Remove five now unused fields from struct cdevsw. They should never 1999-09-25 18:24:47 +00:00
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 Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
subr_prof.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +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 Clean up process accounting some more. Unfortunately, it is still not 2000-09-12 18:57:59 +00:00
subr_taskqueue.c - Remove the inthand2_t type and use the equivalent driver_intr_t type from 2000-09-13 18:33:25 +00:00
subr_trap.c Fixed hang on booting with -d. mtx_enter() was called on an uninitialized 2000-09-13 12:40:43 +00:00
subr_turnstile.c Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just 2000-09-14 20:15:16 +00:00
subr_witness.c Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just 2000-09-14 20:15:16 +00:00
subr_xxx.c Remove five now unused fields from struct cdevsw. They should never 1999-09-25 18:24:47 +00:00
sys_generic.c Fix a warning that has been annoying me for some time: 2000-07-28 22:17:42 +00:00
sys_pipe.c Pipes are not writeable while a direct write is in progress. However, 2000-09-14 20:10:19 +00:00
sys_process.c o Centralize inter-process access control, introducing: 2000-08-30 04:49:09 +00:00
sys_socket.c Instead of just blindly setting -rw-rw-rw-: 2000-07-02 23:56:45 +00:00
syscalls.c Regen: fix prototypes for {o|}{g|s}etrlimit. 2000-08-28 07:56:38 +00:00
syscalls.master Fix prototypes for {o|}{g|s}etrlimit. A recent change in the 2000-08-28 07:50:44 +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 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
tty_conf.c Don't refer to TABLDISC in the comments here. 2000-01-30 10:14:13 +00:00
tty_cons.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
tty_pty.c Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +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 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
tty_tty.c Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
tty.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
uipc_accf.c Accept filter maintainance 2000-09-06 18:49:13 +00:00
uipc_domain.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
uipc_mbuf2.c Replace the mbuf external reference counting code with something 2000-08-19 08:32:59 +00:00
uipc_mbuf.c m_mballoc_wait() had a spl/tsleep race. mbufs can be freed in interrupt 2000-08-25 22:28:08 +00:00
uipc_proto.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
uipc_sockbuf.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
uipc_socket2.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
uipc_socket.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
uipc_syscalls.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
uipc_usrreq.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
vfs_acl.c Remove unneeded #include <vm/vm_zone.h> 2000-04-30 18:52:11 +00:00
vfs_aio.c aio processes need to have the Giant mutex before doing work. 2000-09-11 04:06:48 +00:00
vfs_bio.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
vfs_cache.c Add new flag PDIRUNLOCK to the component.cn_flags which should be set by 2000-09-17 07:26:42 +00:00
vfs_cluster.c Virtualizes & untangles the bioops operations vector. 2000-06-16 08:48:51 +00:00
vfs_conf.c Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
vfs_default.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
vfs_export.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
vfs_extattr.c Add function comments for functions missing them 2000-09-14 19:13:59 +00:00
vfs_init.c Do not panic on an uninitialized VOP_xxx() call. This was meant as a 2000-09-06 17:51:54 +00:00
vfs_lookup.c Add new flag PDIRUNLOCK to the component.cn_flags which should be set by 2000-09-17 07:26:42 +00:00
vfs_mount.c Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
vfs_subr.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
vfs_syscalls.c Add function comments for functions missing them 2000-09-14 19:13:59 +00:00
vfs_vnops.c o vn_extattr_set() will now call appropriate vn_start_write() and 2000-09-05 03:15:02 +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 Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00