#
93562e3f |
| 26-May-2017 |
riastradh <riastradh@NetBSD.org> |
Eliminate crusty debugging sludge.
We have a mostly sane vnode lifecycle now. If this needs debugging, it should be done once at the call site of VOP_RECLAIM.
|
#
7f7aad09 |
| 26-May-2017 |
riastradh <riastradh@NetBSD.org> |
Make VOP_RECLAIM do the last unlock of the vnode.
VOP_RECLAIM naturally has exclusive access to the vnode, so having it locked on entry is not strictly necessary -- but it means if there are any fin
Make VOP_RECLAIM do the last unlock of the vnode.
VOP_RECLAIM naturally has exclusive access to the vnode, so having it locked on entry is not strictly necessary -- but it means if there are any final operations that must be done on the vnode, such as ffs_update, requiring exclusive access to it, we can now kassert that the vnode is locked in those operations.
We can't just have the caller release the last lock because some file systems don't use genfs_lock, and require the vnode to remain valid for VOP_UNLOCK to work, notably unionfs.
show more ...
|
#
87fb3229 |
| 11-Apr-2017 |
riastradh <riastradh@NetBSD.org> |
Make VOP_INACTIVE preserve vnode lock on return.
Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2017/04/01/msg021751.html
Ride 7.99.68, a bumpy bus of incremental vfs improvements!
|
#
7139aab7 |
| 20-Aug-2016 |
hannken <hannken@NetBSD.org> |
Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
#
e716e7d8 |
| 04-Oct-2014 |
hannken <hannken@NetBSD.org> |
Change filecore to vcache.
Compile-tested only, was not able to get my hands on a readable fs image.
|
#
2b6ec898 |
| 27-Feb-2014 |
hannken <hannken@NetBSD.org> |
The current implementation of vn_lock() is racy. Modification of the vnode operations vector for active vnodes is unsafe because it is not known whether deadfs or the original file system will be ca
The current implementation of vn_lock() is racy. Modification of the vnode operations vector for active vnodes is unsafe because it is not known whether deadfs or the original file system will be called.
- Pass down LK_RETRY to the lock operation (hint for deadfs only).
- Change deadfs lock operation to return ENOENT if LK_RETRY is unset.
- Change all other lock operations to check for dead vnode once the vnode is locked and unlock and return ENOENT in this case.
With these changes in place vnode lock operations will never succeed after vclean() has marked the vnode as VI_XLOCK and before vclean() has changed the operations vector.
Adresses PR kern/37706 (Forced unmount of file systems is unsafe)
Discussed on tech-kern.
Welcome to 6.99.33
show more ...
|
#
e225b7bd |
| 12-Jun-2011 |
rmind <rmind@NetBSD.org> |
Welcome to 5.99.53! Merge rmind-uvmplock branch:
- Reorganize locking in UVM and provide extra serialisation for pmap(9). New lock order: [vmpage-owner-lock] -> pmap-lock.
- Simplify locking in
Welcome to 5.99.53! Merge rmind-uvmplock branch:
- Reorganize locking in UVM and provide extra serialisation for pmap(9). New lock order: [vmpage-owner-lock] -> pmap-lock.
- Simplify locking in some pmap(9) modules by removing P->V locking.
- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).
- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner. Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.
- Unify /dev/mem et al in MI code and provide required locking (removes kernel-lock on some ports). Also, avoid cache-aliasing issues.
Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches formed the core changes of this branch.
show more ...
|
#
5cee5af5 |
| 23-May-2011 |
rmind <rmind@NetBSD.org> |
Convert some simple_lock(9) uses to mutex(9) and malloc(9) to kmem(9).
|
#
4a4e5251 |
| 19-May-2011 |
rmind <rmind@NetBSD.org> |
Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
#
fb62bef9 |
| 21-Jul-2010 |
hannken <hannken@NetBSD.org> |
Make holding v_interlock mandatory for callers of vget().
Announced some time ago on tech-kern.
|
#
245651a2 |
| 01-Jul-2010 |
hannken <hannken@NetBSD.org> |
Remove vlockmgr(). Generic vnode lock operations now use a rwlock located in the vnode. All LK_* flags move from sys/lock.h to sys/vnode.h. Calls to vlockmgr() in file systems get replaced with VO
Remove vlockmgr(). Generic vnode lock operations now use a rwlock located in the vnode. All LK_* flags move from sys/lock.h to sys/vnode.h. Calls to vlockmgr() in file systems get replaced with VOP_LOCK() or VOP_UNLOCK().
Welcome to 5.99.34.
Discussed on tech-kern.
show more ...
|
#
1423e65b |
| 24-Jun-2010 |
hannken <hannken@NetBSD.org> |
Clean up vnode lock operations pass 2:
VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.
Welcome to 5.99.32.
Discussed on tech-kern.
|
#
164477c6 |
| 15-Mar-2009 |
cegger <cegger@NetBSD.org> |
ansify function definitions
|
#
454af1c0 |
| 14-Mar-2009 |
dsl <dsl@NetBSD.org> |
Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle
Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
show more ...
|
#
e071d39c |
| 05-May-2008 |
ad <ad@NetBSD.org> |
- Convert hashinit() to use kmem_alloc(). The hash tables can be large and it's better to not have them in kmem_map. - Convert a couple of minor items along the way to kmem_alloc(). - Fix some memo
- Convert hashinit() to use kmem_alloc(). The hash tables can be large and it's better to not have them in kmem_map. - Convert a couple of minor items along the way to kmem_alloc(). - Fix some memory leaks.
show more ...
|
#
3490efcc |
| 30-Jan-2008 |
ad <ad@NetBSD.org> |
Replace struct lock on vnodes with a simpler lock object built on krwlock_t. This is a step towards removing lockmgr and simplifying vnode locking. Discussed on tech-kern.
|
#
42c90ece |
| 17-Jan-2008 |
ad <ad@NetBSD.org> |
Fix dodgy tests of v_usecount.
|
#
0664a045 |
| 04-Jan-2008 |
ad <ad@NetBSD.org> |
Start detangling lock.h from intr.h. This is likely to cause short term breakage, but the mess of dependencies has been regularly breaking the build recently anyhow.
|
#
4a780c9a |
| 02-Jan-2008 |
ad <ad@NetBSD.org> |
Merge vmlocking2 to head.
|
#
61e8303e |
| 26-Nov-2007 |
pooka <pooka@NetBSD.org> |
Remove the "struct lwp *" argument from all VFS and VOP interfaces. The general trend is to remove it from all kernel interfaces and this is a start. In case the calling lwp is desired, curlwp shoul
Remove the "struct lwp *" argument from all VFS and VOP interfaces. The general trend is to remove it from all kernel interfaces and this is a start. In case the calling lwp is desired, curlwp should be used.
quick consensus on tech-kern
show more ...
|
#
0ae0a486 |
| 24-Sep-2007 |
rumble <rumble@NetBSD.org> |
Avoid stack allocation of large dirent structures in foo_readdir().
|
#
835b0326 |
| 30-Jun-2007 |
pooka <pooka@NetBSD.org> |
Using POOL_INIT here makes no sense, since file systems always have an init method. So get rid of it and #ifdef _LKM and just always init in the init method. Give malloc types the same treatment. M
Using POOL_INIT here makes no sense, since file systems always have an init method. So get rid of it and #ifdef _LKM and just always init in the init method. Give malloc types the same treatment. Makes file systems nicer to work with in linksetless environments and fixes a few LKM discrepancies.
show more ...
|
#
4b1d78c0 |
| 13-Mar-2007 |
ad <ad@NetBSD.org> |
Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
#
adbb9ec2 |
| 20-Feb-2007 |
ad <ad@NetBSD.org> |
Call genfs_node_destroy() where appropriate.
|
#
95e1ffb1 |
| 11-Dec-2005 |
christos <christos@NetBSD.org> |
merge ktrace-lwp.
|