summaryrefslogtreecommitdiffstats
path: root/sys/fs/unionfs/union.h
Commit message (Collapse)AuthorAgeFilesLines
* Before we start to mess with the VFS name-cache clean things up a little bit:phk1999-10-031-1/+0
| | | | Isolate the namecache in its own file, and give it a dedicated malloc type.
* This is a major fixup of unionfs. At least 30 serious bugs have beendillon1999-09-261-9/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixed (many due to changing semantics in other parts of the kernel and not the original author's fault), including one critical one: unionfs could cause UFS corruption in the fronting store due to calling VOP_OPEN for writing without turning on vmio for the UFS vnode. Most of the bugs were related to semantics changes in VOP calls, lock ordering problems (causing deadlocks), improper handling of a read-only backing store (such as an NFS mount), improper referencing and locking of vnodes, not using real struct locks for vnode locking, not using recursive locks when accessing the fronting store, and things like that. New functionality has been added: unionfs now has mmap() support, but only partially tested, and rename has been enhanced considerably. There are still some things that unionfs cannot do. You cannot rename a directory without confusing unionfs, and there are issues with softlinks, hardlinks, and special files. unionfs mostly doesn't understand them (and never did). There are probably still panic situations, but hopefully no where near as many as before this commit. The unionfs in this commit has been tested overlayed on /usr/src (backing /usr/src being a read-only NFS mount, fronting /usr/src being a local filesystem). kernel builds have been tested, buildworld is undergoing testing. More testing is necessary.
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Change the #ifdef UNION code into a callable hook. Arrange to have thispeter1998-11-031-1/+4
| | | | set up when unionfs is present, either statically or as a kld module.
* Deleted KLOCK-hack.kato1998-02-261-5/+1
|
* Undo UN_KLOCK hack except union_allocvp(). Now, vput() doesn't lockkato1998-02-101-3/+4
| | | | the vnode.
* - Move SETKLOC and CLEARKLOCK macros into uion.h.kato1998-01-201-1/+4
| | | | | | | | | | - Set UN_ULOCK in union_lock() when UN_KLOCK is set. Caller expects that vnode is locked correctly, and may call another function which expects locked vnode and may unlock the vnode. - Do not assume the behavior of inside functions in FreeBSD's vfs_suber.c is same as 4.4BSD-Lite2. Vnode may be locked in vget() even though flag is zero. (Locked vnode is, of course, unlocked before returning from vget.)
* Staticize.phk1997-11-181-9/+1
|
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-221-1/+1
| | | | ready for it yet.
* Add function protypes for the new Lite2 unionfs functions.mpp1997-02-121-0/+1
|
* This is the kernel Lite/2 commit. There are some requisite userlanddyson1997-02-101-5/+17
| | | | | | | | | | | | | | | changes, so don't expect to be able to run the kernel as-is (very well) without the appropriate Lite/2 userland changes. The system boots and can mount UFS filesystems. Untested: ext2fs, msdosfs, NFS Known problems: Incorrect Berkeley ID strings in some files. Mount_std mounts will not work until the getfsent library routine is changed. Reviewed by: various people Submitted by: Jeffery Hsu <hsu@freebsd.org>
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Introduced a type `vop_t' for vnode operation functions and usedbde1995-11-091-2/+2
| | | | | | | | | | | | | | | it 1138 times (:-() in casts and a few more times in declarations. This change is null for the i386. The type has to be `typedef int vop_t(void *)' and not `typedef int vop_t()' because `gcc -Wstrict-prototypes' warns about the latter. Since vnode op functions are called with args of different (struct pointer) types, neither of these function types is any use for type checking of the arg, so it would be preferable not to use the complete function type, especially since using the complete type requires adding 1138 casts to avoid compiler warnings and another 40+ casts to reverse the function pointer conversions before calling the functions.
* Add and move declarations to fix all of the warnings from `gcc -Wimplicit'bde1995-03-161-1/+4
| | | | | | (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones.
* Added $Id$dg1994-08-021-0/+1
|
* BSD 4.4 Lite Kernel Sourcesrgrimes1994-05-241-0/+117
OpenPOWER on IntegriCloud