summaryrefslogtreecommitdiffstats
path: root/sys/miscfs/union
Commit message (Collapse)AuthorAgeFilesLines
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-291-2/+2
| | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
* Second pass commit to introduce new ACL and Extended Attribute systemrwatson1999-12-191-0/+2
| | | | | | | calls, vnops, vfsops, both in /kern, and to individual file systems that require a vfsop_ array entry. Reviewed by: eivind
* Introduce NDFREE (and remove VOP_ABORTOP)eivind1999-12-153-48/+26
|
* Lock reporting and assertion changes.eivind1999-12-112-7/+10
| | | | | | | | | | | | | | | * lockstatus() and VOP_ISLOCKED() gets a new process argument and a new return value: LK_EXCLOTHER, when the lock is held exclusively by another process. * The ASSERT_VOP_(UN)LOCKED family is extended to use what this gives them * Extend the vnode_if.src format to allow more exact specification than locked/unlocked. This commit should not do any semantic changes unless you are using DEBUG_VFS_LOCKS. Discussed with: grog, mch, peter, phk Reviewed by: peter
* Remove unused #includes.phk1999-12-081-2/+0
| | | | Obtained from: http://bogon.freebsd.dk/include
* Fix an unused variable warning.peter1999-11-181-1/+0
|
* Remove WILLRELE from VOP_SYMLINKeivind1999-11-131-5/+2
| | | | | | Note: Previous commit to these files (except coda_vnops and devfs_vnops) that claimed to remove WILLRELE from VOP_RENAME actually removed it from VOP_MKNOD.
* Remove WILLRELE from VOP_RENAMEeivind1999-11-121-2/+1
|
* useracc() the prequel:phk1999-10-291-1/+0
| | | | | | | | | | | Merge the contents (less some trivial bordering the silly comments) of <vm/vm_prot.h> and <vm/vm_inherit.h> into <vm/vm.h>. This puts the #defines for the vm_inherit_t and vm_prot_t types next to their typedefs. This paves the road for the commit to follow shortly: change useracc() to use VM_PROT_{READ|WRITE} rather than B_{READ|WRITE} as argument.
* Before we start to mess with the VFS name-cache clean things up a little bit:phk1999-10-032-6/+0
| | | | Isolate the namecache in its own file, and give it a dedicated malloc type.
* Make sure file after VOP_OPEN is VMIO'd when transfering control fromdillon1999-09-282-4/+8
| | | | | | | | | | | a lower layer to an upper layer. I'm not sure how necessary this is for reading. Fix bug in union_lookup() (note: there are probably still several bugs in union_lookup()). This one set lerror as a side effect without setting lowervp, causing copyup code further on down to crash on a null lowervp pointer. Changed the side effect to use a temporary variable instead.
* This is a major fixup of unionfs. At least 30 serious bugs have beendillon1999-09-264-860/+1259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Seperate the export check in VFS_FHTOVP, exports are now checked viaalfred1999-09-111-1/+2
| | | | | | | | | VFS_CHECKEXP. Add fh(open|stat|stafs) syscalls to allow userland to query filesystems based on (network) filehandle. Obtained from: NetBSD
* All unimplemented VFS ops now have entries in kern/vfs_default.c that returnalfred1999-09-071-49/+6
| | | | | | | | | | | | | reasonable defaults. This avoids confusing and ugly casting to eopnotsupp or making dummy functions. Bogus casting of filesystem sysctls to eopnotsupp() have been removed. This should make *_vfsops.c more readable and reduce bloat. Reviewed by: msmith, eivind Approved by: phk Tested by: Jeroen Ruigrok/Asmodai <asmodai@wxs.nl>
* Changed old-style option UNION_DIAGNOSTIC to DEBUG and fixed printfbde1999-08-292-12/+11
| | | | | | | format errors exposed by this. It has nothing to do with diagnostics since it does little more than control tracing of normal operation. Actual diagnostics for the union file system are still controlled by the DIAGNOSTIC option.
* $Id$ -> $FreeBSD$peter1999-08-284-4/+4
|
* Make sure that stat(2) and friends always return a valid st_dev field.phk1999-07-021-2/+1
| | | | | | Pseudo-FS need not fill in the va_fsid anymore, the syscall code will use the first half of the fsid, which now looks like a udev_t with major 255.
* Add a vnode argument to VOP_BWRITE to get rid of the last vnodemckusick1999-06-161-12/+5
| | | | | operator special case. Delete special case code from vnode_if.sh, vnode_if.src, umap_vnops.c, and null_vnops.c.
* This code got moved as a result of confusion between union mounts andpeter1999-02-281-10/+1
| | | | | unionfs. Julian has already revived the union mount part of this move in vfs_syscalls.c rev 1.119, but forgot to take it out of here.
* Fix warnings in preparation for adding -Wall -Wcast-qual to thedillon1999-01-272-4/+8
| | | | kernel compile
* Cleanup uninitialized-possibly-used (but really not) warningsdillon1998-12-142-4/+4
|
* The "easy" fixes for compiling the kernel -Wunused: remove unreferenced staticarchie1998-12-071-2/+1
| | | | and local variables, goto labels, and functions declared but not defined.
* '\0' is the most ugly NULL pointer constant I've ever seen in real code.eivind1998-12-071-2/+2
|
* Finished updating module event handlers to be compatible withbde1998-11-151-2/+3
| | | | modeventhand_t.
* Change the #ifdef UNION code into a callable hook. Arrange to have thispeter1998-11-032-2/+83
| | | | set up when unionfs is present, either statically or as a kld module.
* Removed statically configured mount type numbers (MOUNT_*) and allbde1998-09-071-2/+2
| | | | | | | | | references to them. The change a couple of days ago to ignore these numbers in statically configured vfsconf structs was slightly premature because the cd9660, cfs, devfs, ext2fs, nfs vfs's still used MOUNT_* instead of the number in their vfsconf struct.
* Cast pointers to [u]intptr_t instead of to [unsigned] long.bde1998-07-151-2/+2
|
* VOP_STRATEGY grows an (struct vnode *) argumentjulian1998-07-041-2/+3
| | | | | | as the value in b_vp is often not really what you want. (and needs to be frobbed). more cleanups will follow this. Reviewed by: Bruce Evans <bde@freebsd.org>
* In the words of the submitter:msmith1998-05-072-74/+78
| | | | | | | | | | | | | | | | | | | --------- Make callers of namei() responsible for releasing references or locks instead of having the underlying filesystems do it. This eliminates redundancy in all terminal filesystems and makes it possible for stacked transport layers such as umapfs or nullfs to operate correctly. Quality testing was done with testvn, and lat_fs from the lmbench suite. Some NFS client testing courtesy of Patrik Kudo. vop_mknod and vop_symlink still release the returned vpp. vop_rename still releases 4 vnode arguments before it returns. These remaining cases will be corrected in the next set of patches. --------- Submitted by: Michael Hancock <michaelh@cet.co.jp>
* As described by the submitter:msmith1998-05-061-18/+1
| | | | | | | | | | | | | Reverse the VFS_VRELE patch. Reference counting of vnodes does not need to be done per-fs. I noticed this while fixing vfs layering violations. Doing reference counting in generic code is also the preference cited by John Heidemann in recent discussions with him. The implementation of alternative vnode management per-fs is still a valid requirement for some filesystems but will be revisited sometime later, most likely using a different framework. Submitted by: Michael Hancock <michaelh@cet.co.jp>
* Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108.des1998-04-171-2/+2
|
* If lowervp is NULLVP, vap was clobbered.kato1998-03-171-2/+2
| | | | | Submitted by: Naofumi Honda <honda@Kururu.math.sci.hokudai.ac.jp> Obtained from: NetBSD/pc98
* The intent is to get rid of WILLRELE in vnode_if.src by makingmsmith1998-03-011-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a complement to all ops that return a vpp, VFS_VRELE. This is initially only for file systems that implement the following ops that do a WILLRELE: vop_create, vop_whiteout, vop_mknod, vop_remove, vop_link, vop_rename, vop_mkdir, vop_rmdir, vop_symlink This is initial DNA that doesn't do anything yet. VFS_VRELE is implemented but not called. A default vfs_vrele was created for fs implementations that use the standard vnode management routines. VFS_VRELE implementations were made for the following file systems: Standard (vfs_vrele) ffs mfs nfs msdosfs devfs ext2fs Custom union umapfs Just EOPNOTSUPP fdesc procfs kernfs portal cd9660 These implementations may change as VOP changes are implemented. In the next phase, in the vop implementations calls to vrele and the vrele part of vput will be moved to the top layer vfs_vnops and made visible to all layers. vput will be replaced by unlock in these cases. Unlocking will still be done in the per fs layer but the refcount decrement will be triggered at the top because it doesn't hurt to hold a vnode reference a little longer. This will have minimal impact on the structure of the existing code. This will only be done for vnode arguments that are released by the various fs vop implementations. Wider use of VFS_VRELE will likely require restructuring of the code. Reviewed by: phk, dyson, terry et. al. Submitted by: Michael Hancock <michaelh@cet.co.jp>
* Deleted KLOCK-hack.kato1998-02-263-29/+7
|
* Deleted unused variable.kato1998-02-101-2/+1
|
* Undo UN_KLOCK hack except union_allocvp(). Now, vput() doesn't lockkato1998-02-103-54/+32
| | | | the vnode.
* Back out DIAGNOSTIC changes.eivind1998-02-063-9/+3
|
* Workarround for DIAGNOSTIC kernel's panic in union_lookup().kato1998-02-061-1/+7
| | | | | Union_removed_upper() clobbers cache when file is removed. Upper vp will be removed by union_reclaim().
* Turn DIAGNOSTIC into a new-style option.eivind1998-02-043-3/+9
|
* Fixed typo in comment.kato1998-01-251-2/+2
|
* Delete unused code in union_fsync().kato1998-01-221-6/+1
|
* - Move SETKLOC and CLEARKLOCK macros into uion.h.kato1998-01-203-10/+33
| | | | | | | | | | - 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.)
* Workarround for locking violation while recycling vnode which union fskato1998-01-181-4/+14
| | | | used in freelist.
* Improve and revise fixes for locking violation.kato1998-01-182-33/+52
| | | | Obtained from: NetBSD/pc98
* Unspammed nested include of <vm/vm_zone.h>.bde1997-12-271-1/+2
|
* Staticize.phk1997-11-183-33/+30
|
* VFS interior redecoration.phk1997-10-261-2/+2
| | | | | | | | | | | | | Rename vn_default_error to vop_defaultop all over the place. Move vn_bwrite from vfs_bio.c to vfs_default.c and call it vop_stdbwrite. Use vop_null instead of nullop. Move vop_nopoll from vfs_subr.c to vfs_default.c Move vop_sharedlock from vfs_subr.c to vfs_default.c Move vop_nolock from vfs_subr.c to vfs_default.c Move vop_nounlock from vfs_subr.c to vfs_default.c Move vop_noislocked from vfs_subr.c to vfs_default.c Use vop_ebadf instead of *_ebadf. Add vop_defaultop for getpages on master vnode in MFS.
* Another VFS cleanup "kilo commit"phk1997-10-161-18/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Remove VOP_UPDATE, it is (also) an UFS/{FFS,LFS,EXT2FS,MFS} intereface function, and now lives in the ufsmount structure. 2. Remove VOP_SEEK, it was unused. 3. Add mode default vops: VOP_ADVLOCK vop_einval VOP_CLOSE vop_null VOP_FSYNC vop_null VOP_IOCTL vop_enotty VOP_MMAP vop_einval VOP_OPEN vop_null VOP_PATHCONF vop_einval VOP_READLINK vop_einval VOP_REALLOCBLKS vop_eopnotsupp And remove identical functionality from filesystems 4. Add vop_stdpathconf, which returns the canonical stuff. Use it in the filesystems. (XXX: It's probably wrong that specfs and fifofs sets this vop, shouldn't it come from the "host" filesystem, for instance ufs or cd9660 ?) 5. Try to make system wide VOP functions have vop_* names. 6. Initialize the um_* vectors in LFS. (Recompile your LKMS!!!)
* Hmm, realign the vnops into two columns.phk1997-10-151-7/+7
|
* Stylistic overhaul of vnops tables.phk1997-10-151-51/+39
| | | | | | | 1. Remove comment stating the blatantly obvious. 2. Align in two columns. 3. Sort all but the default element alphabetically. 4. Remove XXX comments pointing out entries not needed.
OpenPOWER on IntegriCloud