summaryrefslogtreecommitdiffstats
path: root/sys/miscfs/specfs
Commit message (Collapse)AuthorAgeFilesLines
* Removed unused #includes. The need for most of them went away withbde1997-10-271-2/+1
| | | | recent changes (docluster* and vfs improvements).
* VFS interior redecoration.phk1997-10-261-17/+6
| | | | | | | | | | | | | 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.
* VFS clean up "hekto commit"phk1997-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.
* Another VFS cleanup "kilo commit"phk1997-10-161-44/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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!!!)
* VFS mega cleanup commit (x/N)phk1997-10-161-9/+2
| | | | | | | | | | | | | | | | | | | | | | | 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!)
* vnops megacommitphk1997-10-152-90/+74
| | | | | | | | | | 1. Use the default function to access all the specfs operations. 2. Use the default function to access all the fifofs operations. 3. Use the default function to access all the ufs operations. 4. Fix VCALL usage in vfs_cache.c 5. Use VOCALL to access specfs functions in devfs_vnops.c 6. Staticize most of the spec and fifofs vnops functions. 7. Make UFS panic if it lacks bits of the underlying storage handling.
* Hmm, realign the vnops into two columns.phk1997-10-151-9/+9
|
* Stylistic overhaul of vnops tables.phk1997-10-151-49/+45
| | | | | | | 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.
* Clustered read and write are switched at mount-option level.kato1997-09-271-4/+7
| | | | | | | | | | | | | | | | 1. Clustered I/O is switched by the MNT_NOCLUSTERR and MNT_NOCLUSTERW bits of the mnt_flag. The sysctl variables, vfs.foo.doclusterread and vfs.foo.doclusterwrite are deleted. Only mount option can control clustered I/O from userland. 2. When foofs_mount mounts block device, foofs_mount checks D_CLUSTERR and D_CLUSTERW bits of the d_flags member in the block device switch table. If D_NOCLUSTERR / D_NOCLUSTERW are set, MNT_NOCLUSTERR / MNT_NOCLUSTERW bits will be set. In this case, MNT_NOCLUSTERR and MNT_NOCLUSTERW cannot be cleared from userland. 3. Vnode driver disables both clustered read and write. 4. Union filesystem disables clutered write. Reviewed by: bde
* Convert select -> poll.peter1997-09-142-13/+16
| | | | | Delete 'always succeed' select/poll handlers, replaced with generic call. Flag missing vnode op table entries.
* Removed unused #includes.bde1997-09-021-4/+1
|
* Don't remove the controlling tty from the session if the vnode is beingtegge1997-05-291-1/+2
| | | | cleaned. This should help for PR kern/3581.
* Remove the dependancy on DEV_BSIZE, now specfs works on != 512bytesos1997-05-011-3/+10
| | | | | sector devices given that the fs uses a blocksize of at least a physical sector size.
* Don't include <sys/ioctl.h> in the kernel. Stage 1: don't includebde1997-03-241-2/+1
| | | | | it when it is not used. In most cases, the reasons for including it went away when the special ioctl headers became self-sufficient.
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-222-2/+2
| | | | ready for it yet.
* This is the kernel Lite/2 commit. There are some requisite userlanddyson1997-02-102-48/+55
| | | | | | | | | | | | | | | 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-142-2/+2
| | | | | | | | 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.
* Fixed errno for unsupported advisory locks. The errno is now EINVALbde1996-12-191-2/+2
| | | | | | | | | | | | | | | | | | fcntl() and EOPNOTSUPP for flock(). POSIX specifies the weaker EINVAL errno and the man page agrees. Not fixed: deadfs: always returns wrong EBADF devfs, msdosfs: always return sometimes-wrong EINVAL cd9660, fdesc, kernfs, portal: always return sometimes-wrong EOPNOTSUPP procfs: always returns wrong EIO mfs: panic?! nfs: fudged NetBSD uses a generic file system genfs to do return the sometimes-wrong EOPNOTSUPP more consistently :-)(. Found by: NIST-PCTS
* Substitution of a long divide by a shift. Other cosmetic improvements.dyson1996-10-061-13/+22
| | | | Submitted by: bde
* Eliminated nested include of <sys/unistd.h> in <sys/file.h> in the kernel.bde1996-09-031-2/+3
| | | | | | | 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.
* Even though this looks like it, this is not a complex code change.dyson1996-08-211-2/+7
| | | | | | | | | | | | | | | | | The interface into the "VMIO" system has changed to be more consistant and robust. Essentially, it is now no longer necessary to call vn_open to get merged VM/Buffer cache operation, and exceptional conditions such as merged operation of VBLK devices is simpler and more correct. This code corrects a potentially large set of problems including the problems with ktrace output and loaded systems, file create/deletes, etc. Most of the changes to NFS are cosmetic and name changes, eliminating a layer of subroutine calls. The direct calls to vput/vrele have been re-instituted for better cross platform compatibility. Reviewed by: davidg
* Remove a totally unneeded (and as of the last VM commit, incorrect) calldyson1996-07-271-2/+1
| | | | to pmap_clear_modify.
* Fix the problem that unmounting filesystems that are backed by a VMIOdyson1996-03-191-2/+3
| | | | | | | device have reference count problems. We mark the underlying object ono-persistent, and account for the reference count that the VM system maintainsfor the special device close. This should fix the removable device problem.
* Make sure that the zero flag is cleared upon completion of paging I/O.dyson1996-03-091-1/+2
|
* I have some problem here, which shows up in the ahc0 driver. It isn't wherephk1996-01-011-1/+7
| | | | | it originates, so I catch it here and fail. This may expose the same bug on other disk controllers (both scsi & ide).
* Another mega commit to staticize things.phk1995-12-142-8/+6
|
* devsw tables are now arrays of POINTERS to struct [cb]devswjulian1995-12-131-17/+17
| | | | | | | | | seems to work hre just fine though I can't check every file that changed due to limmited h/w, however I've checked enught to be petty happy withe hte code.. WARNING... struct lkm[mumble] has changed so it might be an idea to recompile any lkm related programs
* Staticize.phk1995-12-111-4/+4
|
* Changes to support 1Tb filesizes. Pages are now named by andyson1995-12-112-4/+38
| | | | (object,index) pair instead of (object,offset) pair.
* Pass 3 of the great devsw changesjulian1995-12-081-5/+1
| | | | | | | | | | | | | | | | | | | | | | | 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.. :)
* Untangled the vm.h include file spaghetti.dg1995-12-071-1/+5
|
* Include <vm/vm.h> or <vm/vm_page.h> explicitly to avoid breaking whenbde1995-12-051-1/+2
| | | | vnode_if.h doesn't include vm stuff.
* #ifdef out nearly the entire file of conf.c when JREMOD is definedjulian1995-11-291-1/+9
| | | | | | | | | | add a few safety checks in specfs because now it's possible to get entries in [cd]devsw[] which are ALL NULL so it's better to discover this BEFORE jumping into the d_open() entry.. more check to come later.. this getsthe code to the stage where I can start testing it, even if I haven't caught every little error case... I guess I'll find them quick enough..
* Completed function declarations and/or added prototypes.bde1995-11-211-4/+3
|
* KNFized spec_getpages_idone() and spec_getpages().bde1995-11-181-43/+43
| | | | | | Moved misplaced #includes. Completed function pointer declarations.
* Introduced a type `vop_t' for vnode operation functions and usedbde1995-11-092-47/+47
| | | | | | | | | | | | | | | 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.
* Finalize GETPAGES layering scheme. Move the device GETPAGESdyson1995-10-232-2/+127
| | | | | interface into specfs code. No need at this point to modify the PUTPAGES stuff except in the layered-type (NULL/UNION) filesystems.
* Avoid some 64bit divides.phk1995-10-061-5/+5
|
* Added VOP_GETPAGES/VOP_PUTPAGES and also the "backwards" block countdyson1995-09-041-1/+5
| | | | for VOP_BMAP. Updated affected filesystems...
* Eliminate sloppy common-style declarations. There should be none left forbde1995-07-292-12/+4
| | | | the LINT configuation.
* Added missing splx() in DIAGNOSTIC code.dg1995-07-081-1/+2
| | | | Suggested by enami@sys.ptg.sony.co.jp.
* Changes from John Dyson and myself:dg1995-04-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed remaining known bugs in the buffer IO and VM system. vfs_bio.c: Fixed some race conditions and locking bugs. Improved performance by removing some (now) unnecessary code and fixing some broken logic. Fixed process accounting of # of FS outputs. Properly handle NFS interrupts (B_EINTR). (various) Replaced calls to clrbuf() with calls to an optimized routine called vfs_bio_clrbuf(). (various FS sync) Sync out modified vnode_pager backed pages. ffs_vnops.c: Do two passes: Sync out file data first, then indirect blocks. vm_fault.c: Fixed deadly embrace caused by acquiring locks in the wrong order. vnode_pager.c: Changed to use buffer I/O system for writing out modified pages. This should fix the problem with the modification date previous not getting updated. Also dramatically simplifies the code. Note that this is going to change in the future and be implemented via VOP_PUTPAGES(). vm_object.c: Fixed a pile of bugs related to cleaning (vnode) objects. The performance of vm_object_page_clean() is terrible when dealing with huge objects, but this will change when we implement a binary tree to keep the object pages sorted. vm_pageout.c: Fixed broken clustering of pageouts. Fixed race conditions and other lockup style bugs in the scanning of pages. Improved performance.
* Fixed bmap run-length brokeness.dg1995-02-031-1/+3
| | | | | | Use bmap run-length extension when doing clustered paging. Submitted by: John Dyson
* Undo a previous change. <sys/disklabel.h> was broken, not these files.bde1994-11-141-2/+1
|
* From: fredriks@mcs.com (Lars Fredriksen)jkh1994-10-281-1/+2
| | | | | | | ... It turns out that these files do not include <sys/dkbad.h> before <sys/disklabel.h>. Submitted by: fredriks
* Cosmetics. reduce the noise from gcc -Wall.phk1994-10-101-3/+7
|
* Use tsleep() rather than sleep so that 'ps' is more informative aboutdg1994-10-061-2/+2
| | | | the wait.
* Implemented loadable VFS modules, and made most existing filesystemswollman1994-09-211-1/+3
| | | | loadable. (NFS is a notable exception.)
* Changed B_AGE policy to work correctly in a world with relatively largedg1994-08-081-4/+1
| | | | buffer caches. The old policy generally ended up caching nothing.
* Added $Id$dg1994-08-022-0/+2
|
OpenPOWER on IntegriCloud