aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/fdescfs
Commit message (Collapse)AuthorAgeFilesLines
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"Peter Wemm1999-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. Notes: svn path=/head/; revision=55206
* Second pass commit to introduce new ACL and Extended Attribute systemRobert Watson1999-12-191-0/+2
| | | | | | | | | | calls, vnops, vfsops, both in /kern, and to individual file systems that require a vfsop_ array entry. Reviewed by: eivind Notes: svn path=/head/; revision=54803
* Remove unused #includes.Poul-Henning Kamp1999-12-081-1/+0
| | | | | | | Obtained from: http://bogon.freebsd.dk/include Notes: svn path=/head/; revision=54292
* Fix a warning.Peter Wemm1999-11-181-0/+3
| | | | Notes: svn path=/head/; revision=53359
* Update for fileops.fo_stat() addition. Note, this would panic ifPeter Wemm1999-11-081-2/+3
| | | | | | | it saw a DTYPE_PIPE. This isn't quite right but should stop a crash. Notes: svn path=/head/; revision=52988
* Seperate the export check in VFS_FHTOVP, exports are now checked viaAlfred Perlstein1999-09-111-0/+1
| | | | | | | | | | | | VFS_CHECKEXP. Add fh(open|stat|stafs) syscalls to allow userland to query filesystems based on (network) filehandle. Obtained from: NetBSD Notes: svn path=/head/; revision=51138
* All unimplemented VFS ops now have entries in kern/vfs_default.c that returnAlfred Perlstein1999-09-071-39/+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> Notes: svn path=/head/; revision=51068
* $Id$ -> $FreeBSD$Peter Wemm1999-08-283-3/+3
| | | | Notes: svn path=/head/; revision=50477
* Make sure that stat(2) and friends always return a valid st_dev field.Poul-Henning Kamp1999-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. Notes: svn path=/head/; revision=48468
* Simplify cdevsw registration.Poul-Henning Kamp1999-05-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The cdevsw_add() function now finds the major number(s) in the struct cdevsw passed to it. cdevsw_add_generic() is no longer needed, cdevsw_add() does the same thing. cdevsw_add() will print an message if the d_maj field looks bogus. Remove nblkdev and nchrdev variables. Most places they were used bogusly. Instead check a dev_t for validity by seeing if devsw() or bdevsw() returns NULL. Move bdevsw() and devsw() functions to kern/kern_conf.c Bump __FreeBSD_version to 400006 This commit removes: 72 bogus makedev() calls 26 bogus SYSINIT functions if_xe.c bogusly accessed cdevsw[], author/maintainer please fix. I4b and vinum not changed. Patches emailed to authors. LINT probably broken until they catch up. Notes: svn path=/head/; revision=47640
* Fix warnings in preparation for adding -Wall -Wcast-qual to theMatthew Dillon1999-01-272-4/+4
| | | | | | | kernel compile Notes: svn path=/head/; revision=43305
* Remove declarations for undefined functions and a couple of unusedEivind Eklund1999-01-121-9/+1
| | | | | | | enotsupp implementations. Notes: svn path=/head/; revision=42568
* Cleanup uninitialized-possibly-used (but really not) warningsMatthew Dillon1998-12-141-2/+2
| | | | Notes: svn path=/head/; revision=41761
* The "easy" fixes for compiling the kernel -Wunused: remove unreferenced staticArchie Cobbs1998-12-071-3/+1
| | | | | | | and local variables, goto labels, and functions declared but not defined. Notes: svn path=/head/; revision=41591
* Removed statically configured mount type numbers (MOUNT_*) and allBruce Evans1998-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. Notes: svn path=/head/; revision=38909
* Avoid a 64-bit division in fdesc_readdir(). Fixed related overflowsBruce Evans1998-06-141-27/+14
| | | | | | | | | | | and missing arg checking. Panic instead of returning bogus error codes or forgetting to check all cases if fdesc_readdir() gets called for a non-directory. This can't happen. Notes: svn path=/head/; revision=36963
* Make these files compile.Doug Rabson1998-06-101-1/+2
| | | | Notes: svn path=/head/; revision=36873
* ENOPNOTSUPP --> EOPNOTSUPPAlexander Langer1998-06-101-2/+2
| | | | | | | | PR: 6906 Submitted by: Steven G. Kargl <kargl@troutmask.apl.washington.edu> Notes: svn path=/head/; revision=36864
* Don't silently accept attempts to change flags where they are notPeter Wemm1998-06-101-2/+8
| | | | | | | supported. Notes: svn path=/head/; revision=36840
* As described by the submitter:Mike Smith1998-05-061-5/+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> Notes: svn path=/head/; revision=35769
* The intent is to get rid of WILLRELE in vnode_if.src by makingMike Smith1998-03-011-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=33964
* Staticize.Eivind Eklund1998-02-091-3/+3
| | | | Notes: svn path=/head/; revision=33181
* Removed unused #includes. The need for most of them went away withBruce Evans1997-10-271-2/+1
| | | | | | | recent changes (docluster* and vfs improvements). Notes: svn path=/head/; revision=30780
* VFS interior redecoration.Poul-Henning Kamp1997-10-261-3/+3
| | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=30743
* VFS clean up "hekto commit"Poul-Henning Kamp1997-10-161-4/+1
| | | | | | | | | | | | | 1. Add defaults for more VOPs VOP_LOCK vop_nolock VOP_ISLOCKED vop_noislocked VOP_UNLOCK vop_nounlock and remove direct reference in filesystems. 2. Rename the nfsv2 vnop tables to improve sorting order. Notes: svn path=/head/; revision=30496
* Another VFS cleanup "kilo commit"Poul-Henning Kamp1997-10-161-43/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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!!!) Notes: svn path=/head/; revision=30492
* VFS mega cleanup commit (x/N)Poul-Henning Kamp1997-10-161-76/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | 1. Add new file "sys/kern/vfs_default.c" where default actions for VOPs go. Implement proper defaults for ABORTOP, BWRITE, LEASE, POLL, REVOKE and STRATEGY. Various stuff spread over the entire tree belongs here. 2. Change VOP_BLKATOFF to a normal function in cd9660. 3. Kill VOP_BLKATOFF, VOP_TRUNCATE, VOP_VFREE, VOP_VALLOC. These are private interface functions between UFS and the underlying storage manager layer (FFS/LFS/MFS/EXT2FS). The functions now live in struct ufsmount instead. 4. Remove a kludge of VOP_ functions in all filesystems, that did nothing but obscure the simplicity and break the expandability. If a filesystem doesn't implement VOP_FOO, it shouldn't have an entry for it in its vnops table. The system will try to DTRT if it is not implemented. There are still some cruft left, but the bulk of it is done. 5. Fix another VCALL in vfs_cache.c (thanks Bruce!) Notes: svn path=/head/; revision=30474
* Hmm, realign the vnops into two columns.Poul-Henning Kamp1997-10-151-8/+8
| | | | Notes: svn path=/head/; revision=30434
* Stylistic overhaul of vnops tables.Poul-Henning Kamp1997-10-151-49/+43
| | | | | | | | | | 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. Notes: svn path=/head/; revision=30431
* Last major round (Unless Bruce thinks of somthing :-) of malloc changes.Poul-Henning Kamp1997-10-121-3/+5
| | | | | | | | | | | Distribute all but the most fundamental malloc types. This time I also remembered the trick to making things static: Put "static" in front of them. A couple of finer points by: bde Notes: svn path=/head/; revision=30354
* Convert select -> poll.Peter Wemm1997-09-141-11/+16
| | | | | | | | Delete 'always succeed' select/poll handlers, replaced with generic call. Flag missing vnode op table entries. Notes: svn path=/head/; revision=29362
* Some staticized variables were still declared to be extern.Bruce Evans1997-09-072-5/+4
| | | | Notes: svn path=/head/; revision=29179
* Removed unused #includes.Bruce Evans1997-09-021-4/+1
| | | | Notes: svn path=/head/; revision=29041
* Fix all areas of the system (or at least all those in LINT) to avoid storingGarrett Wollman1997-08-161-2/+2
| | | | | | | | | | | socket addresses in mbufs. (Socket buffers are the one exception.) A number of kernel APIs needed to get fixed in order to make this happen. Also, fix three protocol families which kept PCBs in mbufs to not malloc them instead. Delete some old compatibility cruft while we're at it, and add some new routines in the in_cksum family. Notes: svn path=/head/; revision=28270
* Removed unused #includes.Bruce Evans1997-08-021-4/+1
| | | | Notes: svn path=/head/; revision=27845
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notPeter Wemm1997-02-223-3/+3
| | | | | | | ready for it yet. Notes: svn path=/head/; revision=22975
* This is the kernel Lite/2 commit. There are some requisite userlandJohn Dyson1997-02-103-148/+90
| | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=22521
* Make the long-awaited change from $Id$ to $FreeBSD$Jordan K. Hubbard1997-01-143-3/+3
| | | | | | | | | | | 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. Notes: svn path=/head/; revision=21673
* Fixed lseek() on named pipes. It always succeeded but should always fail.Bruce Evans1996-12-191-1/+3
| | | | | | | | | | | | | Broke locking on named pipes in the same way as locking on non-vnodes (wrong errno). This will be fixed later. The fix involves negative logic. Named pipes are now distinguished from other types of files with vnodes, and there is additional code to handle vnodes and named pipes in the same way only where that makes sense (not for lseek, locking or TIOCSCTTY). Notes: svn path=/head/; revision=20691
* Whoops, I should've used the LINT config file. More ts -> tv changesNate Williams1996-09-201-3/+3
| | | | | | | for timespec structure. Notes: svn path=/head/; revision=18413
* Eliminated nested include of <sys/unistd.h> in <sys/file.h> in the kernel.Bruce Evans1996-09-031-1/+2
| | | | | | | | | | Include it directly in the few places where it is used. Reduced some #includes of <sys/file.h> to #includes of <sys/fcntl.h> or nothing. Notes: svn path=/head/; revision=18020
* Clean up -Wunused warnings.Gary Palmer1996-06-121-12/+1
| | | | | | | Reviewed by: bde Notes: svn path=/head/; revision=16322
* Moved the fsnode MALLOC to before the call to getnewvnode() so that theDavid Greenman1996-06-121-3/+11
| | | | | | | | | | | process won't possibly block before filling in the fsnode pointer (v_data) which might be dereferenced during a sync since the vnode is put on the mnt_vnodelist by getnewvnode. Pointed out by Matt Day <mday@artisoft.com> Notes: svn path=/head/; revision=16312
* Pass 3 of the great devsw changesJulian Elischer1995-12-081-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | most devsw referenced functions are now static, as they are in the same file as their devsw structure. I've also added DEVFS support for nearly every device in the system, however many of the devices have 'incorrect' names under DEVFS because I couldn't quickly work out the correct naming conventions. (but devfs won't be coming on line for a month or so anyhow so that doesn't matter) If you "OWN" a device which would normally have an entry in /dev then search for the devfs_add_devsw() entries and munge to make them right.. check out similar devices to see what I might have done in them in you can't see what's going on.. for a laugh compare conf.c conf.h defore and after... :) I have not doen DEVFS entries for any DISKSLICE devices yet as that will be a much more complicated job.. (pass 5 :) pass 4 will be to make the devsw tables of type (cdevsw * ) rather than (cdevsw) seems to work here.. complaints to the usual places.. :) Notes: svn path=/head/; revision=12675
* Restored #include of <sys/tty.h>. fdesc_vnops.c needs to know too muchBruce Evans1995-12-051-2/+2
| | | | | | | about tty_tty.c's cdevswitch functions. Notes: svn path=/head/; revision=12636
* Added prototypes.Bruce Evans1995-12-031-4/+25
| | | | | | | Removed some unnecessary #includes. Notes: svn path=/head/; revision=12595
* Fixed the type of fdesc_sync(). Trailing args were missing.Bruce Evans1995-11-161-6/+27
| | | | | | | | | | Fixed the type of fdesc_fhtovp(). The args had little resemblance to the correct ones. Added prototypes. Notes: svn path=/head/; revision=12333
* Introduced a type `vop_t' for vnode operation functions and usedBruce Evans1995-11-092-46/+46
| | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=12158
* Make a lot of private stuff static.Poul-Henning Kamp1995-11-072-34/+34
| | | | | | | | | | | | Should anybody out there wonder about this vendetta against global variables, it is basically to make it more visible what our interfaces in the kernel really are. I'm almost convinced we should have a #define PUBLIC /* public interface */ and use it in the #includes... Notes: svn path=/head/; revision=12143
* Do not allow delete/rename lookup request to preventMike Pritchard1995-09-021-1/+7
| | | | | | | | panics if a user attempts to remove/rename files in a fdesc file system. Notes: svn path=/head/; revision=10534