#
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.
|
#
1997a1e1 |
| 25-Jan-2008 |
ad <ad@NetBSD.org> |
Remove VOP_LEASE. Discussed on tech-kern.
|
#
4a780c9a |
| 02-Jan-2008 |
ad <ad@NetBSD.org> |
Merge vmlocking2 to head.
|
#
b6a2ef75 |
| 25-Dec-2007 |
perry <perry@NetBSD.org> |
Convert many of the uses of __attribute__ to equivalent __packed, __unused and __dead macros from cdefs.h
|
#
db06a930 |
| 08-Dec-2007 |
pooka <pooka@NetBSD.org> |
Remove cn_lwp from struct componentname. curlwp should be used from on. The NDINIT() macro no longer takes the lwp parameter and associates the credentials of the calling thread with the namei stru
Remove cn_lwp from struct componentname. curlwp should be used from on. The NDINIT() macro no longer takes the lwp parameter and associates the credentials of the calling thread with the namei structure.
show more ...
|
#
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 ...
|
#
606670f3 |
| 23-Jul-2007 |
pooka <pooka@NetBSD.org> |
Initialize size and/or writesize when creating a vnode.
|
#
9403f9f1 |
| 25-Apr-2007 |
dogcow <dogcow@NetBSD.org> |
make coda compile again.
|
#
664f30be |
| 15-Apr-2007 |
gdt <gdt@NetBSD.org> |
Stop doing vref of vnodes on open (and vrele on close); this makes no sense.
Improve coda_inactive, turning commented out DIAGNOSTIC checks into printfs.
minor style/comment fixes.
|
#
c2789872 |
| 15-Apr-2007 |
gdt <gdt@NetBSD.org> |
In coda_{get,put}pages, drop and obtain v_uobj.vmobjlock rather than v_interlock. They are actually the same lock, but the former protects the uvm object associated with the vnode, and the latter vn
In coda_{get,put}pages, drop and obtain v_uobj.vmobjlock rather than v_interlock. They are actually the same lock, but the former protects the uvm object associated with the vnode, and the latter vnode reference counts. Explained to me by chs@.
show more ...
|
#
6be5cb15 |
| 15-Apr-2007 |
gdt <gdt@NetBSD.org> |
Based on suggestion from chs@, drop coda vnode interlock before obtaining interlock on container vnode in coda_{get,put}pages. This is the only functional change in this commit.
Improve many commen
Based on suggestion from chs@, drop coda vnode interlock before obtaining interlock on container vnode in coda_{get,put}pages. This is the only functional change in this commit.
Improve many comments. In particular, note that the relationship between VOP_OPEN and obtaining a container file (e.g. for getpages for executables) is messy.
Add printfs for 'internal open' cases in coda_rdwr. These have not been triggered in my testing. Note an apparent vref leak.
show more ...
|
#
a648308e |
| 12-Apr-2007 |
gdt <gdt@NetBSD.org> |
Rewrite coda_{get,put}pages. Now copying files from coda with mmap does not trigger assertions in uvm_fault, and executing files from coda works as well.
Code very lightly reviewed by wrstuden@; sc
Rewrite coda_{get,put}pages. Now copying files from coda with mmap does not trigger assertions in uvm_fault, and executing files from coda works as well.
Code very lightly reviewed by wrstuden@; scrutiny by those who understand vnode and especially {get,put}pages would be appreciated.
show more ...
|
#
3bcadc1a |
| 09-Apr-2007 |
gdt <gdt@NetBSD.org> |
revert putpages part of last change. Thanks to pooka@ for pointing out that the v_interlock in the previous code and v_uobj.vmobjlock are really the same thing.
|
#
8f39b4fd |
| 08-Apr-2007 |
gdt <gdt@NetBSD.org> |
Further cleanups on coda vnode handling.
Re-enable mmap. The problem is how uvm_fault handles page faults from coda vnodes via container files, and executing a program caused the same problem so di
Further cleanups on coda vnode handling.
Re-enable mmap. The problem is how uvm_fault handles page faults from coda vnodes via container files, and executing a program caused the same problem so disabling mmap only helped cp(1).
coda_open: rename variables to match vnode_if.src better comments about lock/reference state of vnodes keep lock on container file until after VOP_OPEN, which requires locked vp remove #if 0'd code to PNBUF_PUT
coda_link: rename variables to match vnode_if.src error out early if vp == dvp check return value on vn_lock, and add comment questoining the lock clarify lock handling, but unchanged logic remove #if 0'd code to PNBUF_PUT
coda_rmdir: error out early if vp == dvp remove #if 0'd code to PNBUF_PUT
coda_grab_vnode: add comments, and in particular question undocumented VFS_VGET semantics
coda_getpages: question calling VOP_OPEN, which requires a locked vnode, with the vnode we got (vop_getpages does not guarantee a locked vnode)
coda_putpages: remove inexplicable simple_unlock(&vp->v_interlock); add printf so we notice if this is ever called
add comment explaining that the implementation will lead to trouble, because vnode_if.src says putpages is called with v_uobj.vmobjlock held and is supposed to unlock it
With these changes and an uncommitted change to uvm_fault not to panic if uvm objects are not equal, coda seems stable again.
show more ...
|
#
8830bbca |
| 06-Apr-2007 |
gdt <gdt@NetBSD.org> |
Disable mmap for coda. When copying a file from coda to normal ffs, I got a panic in uvm_fault from ffs_write. I believe this is because cp used mmap, the container file page was not in core, and u
Disable mmap for coda. When copying a file from coda to normal ffs, I got a panic in uvm_fault from ffs_write. I believe this is because cp used mmap, the container file page was not in core, and uvm_fault objected to the container file vnode and the coda vnode not matching. I have long been plagued by crashes on cp from coda, and this was the first time I got and understood a backtrace.
Clean up old comments that are no longer accurate.
Document refcounting better.
Note some questionable behaviors with XXX.
Clean up PNBUF_PUT and SAVESTART. Only do this where vnodeops(9) says we should, and do it on error also.
In symlink, vput parent and free namebuf even in error cases.
show more ...
|
#
23959b33 |
| 05-Apr-2007 |
gdt <gdt@NetBSD.org> |
Improve conformance to vnode locking rules in coda_lookup, by doing the unlock parent, lock child, lock parent in the ISDOTDOT case.
Clean up and rewrite comments to match more closely current reali
Improve conformance to vnode locking rules in coda_lookup, by doing the unlock parent, lock child, lock parent in the ISDOTDOT case.
Clean up and rewrite comments to match more closely current reality.
Sprinkle XXX where I'm not sure the current rules are being followed.
Reviewed by wrstuden@, who agreed that this is an improvement over the current code, with concerns about LK_RETRY and whether the ISDOTDOT locking is done soon enough.
show more ...
|
#
53524e44 |
| 04-Mar-2007 |
christos <christos@NetBSD.org> |
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
#
c398ae97 |
| 09-Dec-2006 |
chs <chs@NetBSD.org> |
a smorgasbord of improvements to vnode locking and path lookup: - LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP(). these now always return the parent vnode locked. name
a smorgasbord of improvements to vnode locking and path lookup: - LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP(). these now always return the parent vnode locked. namei() works as before. lookup() and various other paths no longer acquire vnode locks in the wrong order via vrele(). fixes PR 32535. as a nice side effect, path lookup is also up to 25% faster. - the above allows us to get rid of PDIRUNLOCK. - also get rid of WANTPARENT (just use LOCKPARENT and unlock it). - remove an assumption in layer_node_find() that all file systems implement a recursive VOP_LOCK() (unionfs doesn't). - require that all file systems supply vfs_vptofh and vfs_fhtovp routines. fill in eopnotsupp() for file systems that don't support being exported and remove the checks for NULL. (layerfs calls these without checking.) - in union_lookup1(), don't change refcounts in the ISDOTDOT case, just adjust which vnode is locked. fixes PR 33374. - apply fixes for ufs_rename() from ufs_vnops.c rev. 1.61 to ext2fs_rename().
show more ...
|
#
3029ac48 |
| 21-Jul-2006 |
ad <ad@NetBSD.org> |
- Use the LWP cached credentials where sane. - Minor cosmetic changes.
|
#
874fef37 |
| 14-May-2006 |
elad <elad@NetBSD.org> |
integrate kauth.
|
#
08172fe2 |
| 12-Apr-2006 |
christos <christos@NetBSD.org> |
COVERITY CID 1113: Don't use NULL for VOP_READDIR
|
#
ec5a9318 |
| 01-Mar-2006 |
yamt <yamt@NetBSD.org> |
merge yamt-uio_vmspace branch.
- use vmspace rather than proc or lwp where appropriate. the latter is more natural to specify an address space. (and less likely to be abused for random purposes.
merge yamt-uio_vmspace branch.
- use vmspace rather than proc or lwp where appropriate. the latter is more natural to specify an address space. (and less likely to be abused for random purposes.) - fix a swdmover race.
show more ...
|
#
6fbdb2ad |
| 12-Jan-2006 |
gdt <gdt@NetBSD.org> |
In coda_lookup, add LK_RETRY to locking of child vnode. The previous code paniced if the first attempt to lock the vnode failed, and such failures are not errors - just cause to wait. gdt was regul
In coda_lookup, add LK_RETRY to locking of child vnode. The previous code paniced if the first attempt to lock the vnode failed, and such failures are not errors - just cause to wait. gdt was regularly hitting this panic.
Correct one of two identical panic messages.
Add XXX comments about
ISDOTDOT locking rules not being followed
questioning the practice of unlocking parent before locking child. (But, given that the vnode is referenced, it can't be deleted, so maybe this is fine.)
Why is failured to unlock not a panic but failure to lock is?
show more ...
|
#
95e1ffb1 |
| 11-Dec-2005 |
christos <christos@NetBSD.org> |
merge ktrace-lwp.
|
#
a748ea88 |
| 02-Nov-2005 |
yamt <yamt@NetBSD.org> |
merge yamt-vop branch. remove following VOPs.
VOP_BLKATOFF VOP_VALLOC VOP_BALLOC VOP_REALLOCBLKS VOP_VFREE VOP_TRUNCATE VOP_UPDATE
|