summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_subr.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* fix ddb buf printmickey2007-02-131-3/+3
|
* vprint() should be defined if DIAGNOSTIC || DEBUG. Noticed by (andtom2006-11-201-3/+3
| | | | | | | original diff from) Jake < antipsychic (at) hotmail.com >. Discussed with Mickey and Miod. ok miod@ pedro@
* use vp->v_type to index into vtypes rather then vp->v_tag,thib2006-10-301-3/+3
| | | | | | fixing odd output in the 'show vnode' ddb code. ok mickey@
* add mount/vnode/buf and softdep printing commands; tested on a few archs and will make pedro happy too (;mickey2006-07-111-1/+126
|
* Fix tab where space was meantpedro2006-07-091-2/+2
|
* vinvalbuf() debugging aid, under VFSDEBUG.thib2006-07-081-1/+6
| | | | ok pedro@
* also print vp in vprint (useful for debugging); pedro@ okmickey2006-07-031-3/+3
|
* rename vfs_busy() flags VB_UMIGNORE/VB_UMWAIT to VB_NOWAIT/VB_WAITsturm2006-06-251-7/+7
| | | | requested by and ok pedro
* move vfs_busy() to rwlocks and properly hide the locking api from vfssturm2006-06-141-32/+29
| | | | ok tedu, pedro
* Add a clonable devices implementation. Hacked along with thib@, inputpedro2006-06-021-1/+2
| | | | from krw@ and toby@, subliminal prodding from dlg@, okay deraadt@.
* Spacing in vfs_sysctl()pedro2006-05-281-1/+10
|
* forgot to remove this sentence from the commentsturm2006-05-071-2/+2
| | | | ok pedro
* remove the simplelock argument from vfs_busy() which is currently notsturm2006-04-301-10/+8
| | | | | | used and will never be used this way in VFS requested by and ok pedro, ok krw, biorn
* Remove unused mount list simple_lock() goopedro2006-04-191-15/+6
|
* Put vprint() under DIAGNOSTIC, as to save space in generated ramdisks.pedro2006-01-091-1/+11
| | | | Inspiration from miod@, okay deraadt@. Tested on i386, macppc and amd64.
* No need for vfs_busy() and vfs_unbusy() to take a process pointerpedro2005-11-301-17/+12
| | | | anymore. Testing by jolan@, thanks.
* Remove kernfs, okay deraadt@.pedro2005-11-241-3/+3
|
* Remove unnecessary lockmgr() archaism that was costing too much in termspedro2005-11-191-3/+3
| | | | | | of panics and bugfixes. Access curproc directly, do not expect a process pointer as an argument. Should fix many "process context required" bugs. Incentive and okay millert@, okay marc@. Various testing, thanks.
* Work around yet another race on non-locking file systems: when callingpedro2005-11-181-3/+3
| | | | | | VOP_INACTIVE() in vrele() and vput(), we may sleep. Since there's no locking of any kind, someone can vget() the vnode and vrele() it while we sleep, beating us in getting the vnode on the free list.
* Missed one use of 'register'pedro2005-11-081-2/+2
|
* Use ANSI function declarations and deregister, no binary changepedro2005-11-071-197/+85
|
* Remove v_vnlock from struct vnode, okay krw@ tedu@pedro2005-10-191-3/+1
|
* RIP stackable filesystems, ok marius@ tedu@, discussed with deraadt@pedro2005-05-261-5/+1
|
* when a device vnode associated with a mount point disappears, mark thepedro2005-05-241-1/+17
| | | | filesystem as doomed and unmount it
* put VLOCKSWORK stuff under a single option, VFSDEBUGpedro2005-05-221-2/+2
|
* check for VBIOONFREELIST and VBIOONSYNCLIST in vprint(), okay marius@pedro2005-05-011-2/+6
|
* always good to check for invalid values. ok marius pedrotedu2005-03-241-2/+3
|
* change vget() to only put a vnode back on the free lists if it actuallypedro2005-01-101-6/+8
| | | | | was there. should fix a (rare) corner case introduced by my last commit. ok tedu@, testing by joris, moritz@, danh@, otto@ and krw@. many thanks.
* sprinkle some more list macros in herepedro2004-12-311-5/+6
|
* when releasing a vnode, make it inactive before sticking it to one ofpedro2004-12-311-6/+20
| | | | | | | | | the free lists. should fix some races on filesystems that don't have locks, such as nfs. also, it allows for a more straightforward way of releasing vnodes (nodes that are going to be recycled don't have to be moved to the head of the list). tested by many, thanks. ok tedu@ deraadt@
* clean dirty accident by miodderaadt2004-12-281-2/+2
|
* Use list and queue macros where applicable to make the code easier to read;miod2004-12-261-17/+18
| | | | no change in compiler assembly output.
* minor spacing/styling nitspedro2004-12-091-12/+8
|
* Uninline vputonfreelist.art2004-08-041-5/+4
|
* better commentspedro2004-08-041-10/+9
|
* - check for LK_NOWAIT on vget()pedro2004-08-021-5/+12
| | | | | | - use ltsleep() instead of the unlock + sleep combo ok art@, inspiration from free/net
* make acct(2) optional with ACCOUNTINGtedu2004-05-271-3/+5
| | | | ok art@ deraadt@
* shutdown accounting before shutting down vfs. should prevent some panics.tedu2004-05-271-1/+5
| | | | ok david@ millert@ (iirc)
* radix tree with multipath support. from kame. deraadt okitojun2004-04-251-2/+2
| | | | | | | | | | | | | user visible changes: - you can add multiple routes with same key (route add A B then route add A C) - you have to specify gateway address if there are multiple entries on the table (route delete A B, instead of route delete A) kernel change: - radix_node_head has an extra entry - rnh_deladdr takes extra argument TODO: - actually take advantage of multipath (rtalloc -> rtalloc_mpath)
* back out vnode parents. weird breakge found in ports treetedu2004-01-091-5/+1
|
* keep track of a vnode's parent dir. ufs only, and unused atm, buttedu2004-01-061-1/+5
| | | | the fun stuff is coming. testing by brad.
* remove caddr_t casts. it's just silly to cast something when the functiontedu2003-07-211-16/+15
| | | | takes a void *. convert uiomove to take a void * as well. ok deraadt@
* Remove the advertising clause in the UCB license which Berkeleymillert2003-06-021-6/+2
| | | | rescinded 22 July 1999. Proofed by myself and Theo.
* Back out previous change that causes "vnode table full" for large-scalenaddy2003-05-131-1/+3
| | | | file operations.
* do reclaim LAYER vnodes, no good reason not totedu2003-05-131-3/+1
|
* attempt to put a process's cwd back in place after a forced umount.tedu2003-05-061-2/+2
| | | | | | | won't always work, but it's the best we can do for now. this covers at least some of the failure cases the previous commit to vfs_lookup.c checks for. ok weingart@
* several related changes:tedu2003-05-011-9/+14
| | | | | | | | | | | | | | | | | | | | | vfs_subr.c: add a missing simple_lock_init for vnode interlock try to avoid reclaiming locked or layered vnodes initialize vnlock pointer to NULL remove old code to free vnlock, never used lockinit the new vnode lock vfs_syscalls.c: support for VLAYER flag vnode_if.sh: support for splitting VDESC flags vnode_if.src: split VDESC flags WILLPUT is the combination of WILLRELE and WILLUNLOCK most uses for WILLRELE become WILLPUT vnode.h: add v_lock to struct vnode add VLAYER flag update for new VDESC flags
* strcat/strcpy/sprintf cleanup. krw@, anil@ ok. art@ tested sparc64.ho2003-04-061-8/+8
|
* Add two missing vfs_busy calls in the failure path of sysctl_vnode.art2002-08-111-2/+5
| | | | | | | Found by aaron@ NOTE - I think we need a mount-point iterator just like we have NOTE - vfs_mount_foreach_vnode. (btw. why don't we use foreach_vnode in here?)
* Change the locking on the mountpoint slightly. Instead of using mnt_lockart2002-07-121-26/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to get shared locks for lookup and get the exclusive lock only with LK_DRAIN on unmount and do the real exclusive locking with flags in mnt_flags, we now use shared locks for lookup and an exclusive lock for unmount. This is accomplished by slightly changing the semantics of vfs_busy. Old vfs_busy behavior: - with LK_NOWAIT set in flags, a shared lock was obtained if the mountpoint wasn't being unmounted, otherwise we just returned an error. - with no flags, a shared lock was obtained if the mountpoint was being unmounted, otherwise we slept until the unmount was done and returned an error. LK_NOWAIT was used for sync(2) and some statistics code where it isn't really critical that we get the correct results. 0 was used in fchdir and lookup where it's critical that we get the right directory vnode for the filesystem root. After this change vfs_busy keeps the same behavior for no flags and LK_NOWAIT. But if some other flags are passed into it, they are passed directly into lockmgr (actually LK_SLEEPFAIL is always added to those flags because if we sleep for the lock, that means someone was holding the exclusive lock and the exclusive lock is only held when the filesystem is being unmounted. More changes: dounmount must now be called with the exclusive lock held. (before this the caller was supposed to hold the vfs_busy lock, but that wasn't always true). Zap some (now) unused mount flags. And the highlight of this change: Add some vfs_busy calls to match some vfs_unbusy calls, especially in sys_mount. (lockmgr doesn't detect the case where we release a lock noone holds (it will do that soon)). If you've seen hangs on reboot with mfs this should solve it (I repeat this for the fourth time now, but this time I spent two months fixing and redesigning this and reading the code so this time I must have gotten this right).