summaryrefslogtreecommitdiff
path: root/sys/kern/vnode_if.src
AgeCommit message (Collapse)Author
2014-02-07Change vnode operation lookup to return the resulting vnode *vpp unlocked.hannken
Change cache_lookup() to return an unlocked vnode. Discussed on tech-kern@
2014-01-23Change vnode operations create, mknod, mkdir and symlink to returnhannken
the resulting vnode *vpp unlocked. Discussed on tech-kern@
2014-01-17Change vnode operations create, mknod, mkdir and symlink to keep thehannken
directory node dvp locked on return. Discussed on tech-kern@
2011-10-14Change the vnode locking protocol of VOP_GETATTR() to request at leasthannken
a shared lock. Make all calls outside of file systems respect it. The calls from file systems need review. No objections from tech-kern.
2011-07-11Change VOP_BWRITE() to take a vnode as its first argument like all otherhannken
VOPs do. Layered file systems no longer have to modify bp->b_vp and run into trouble when an async VOP_BWRITE() uses the wrong vnode. Adresses PR kern/38762 panic: vwakeup: neg numoutput No objections from tech-kern@.
2011-04-02Update UCB license (3rd clause drop).rmind
2011-01-02Remove references to SAVESTART and SAVENAME in comments.dholland
2010-06-24Clean up vnode lock operations pass 2:hannken
VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument. Welcome to 5.99.32. Discussed on tech-kern.
2008-11-15vpp is not logically passed in IN with lookup, so INOUT -> OUT.pooka
No functional change, but consistent with the rest.
2008-01-25Remove VOP_LEASE. Discussed on tech-kern.ad
2008-01-02Merge vmlocking2 to head.ad
2007-11-26Remove the "struct lwp *" argument from all VFS and VOP interfaces.pooka
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
2007-07-27Change unused fflags parameter in VOP_MMAP to prot and pass inpooka
desired vm protection.
2007-07-22Introduce WILLMAKE for vnode operations which create a new vnode.pooka
Insert a KASSERT along the return path of such operations to check that the operation set the vnode size.
2007-04-09vop_link: reorder commented arguments to match actual calling ordergdt
(dvp, vp). ok wrstuden@
2007-01-07update some comments for vnode locking smoergasbord changepooka
amazing -- the description of VOP_LOOKUP is suddenly human-readable
2006-05-14integrate kauth.elad
2006-05-04Change VOP_FCNTL to take an unlocked vnode. Approved by wrstuden@.perseant
2005-12-30remove a wrong "LOCKED=YES" from vop_bmap. pointed by Reinoud Zandijk.yamt
2005-12-11merge ktrace-lwp.christos
2005-11-02merge yamt-vop branch. remove following VOPs.yamt
VOP_BLKATOFF VOP_VALLOC VOP_BALLOC VOP_REALLOCBLKS VOP_VFREE VOP_TRUNCATE VOP_UPDATE
2005-09-25Correct typo in a comment. ok'ed by wiz@.isaki
2005-02-26revert trailing whitespace change -- it had unintended consequencesperry
2005-02-26nuke trailing whitespaceperry
2005-01-02Add the system call and VFS infrastructure for file system extendedthorpej
attributes. From FreeBSD.
2004-09-21Add a new VNODE_LOCKDEBUG option, which enables checks in the VOP_*()thorpej
calls to ensure that the vnode lock state is as expected when the VOP call is made. Modify vnode_if.src to set the expected state according to the documenting lock table for each VOP. Modify vnode_if.sh to emit the checks. Notes: - The checks are only performed if the vnode has the VLOCKSWORK bit set. Some file systems (e.g. specfs) don't even bother with vnode locks, so of course the checks will fail. - We can't actually run with VNODE_LOCKDEBUG because there are so many vnode locking problems, not the least of which is the "use SHARED for VOP_READ()" issue, which screws things up for the entire call chain. Inspired by similar changes in OpenBSD, but implemented differently.
2004-09-10VOP_BMAP isn't protected by vnode locks these days.yamt
2004-05-27update to match with the recent reality: getpages doesn't care aboutyamt
vnode locks.
2004-01-25Make VOP_STRATEGY(bp) a real VOP as discussed on tech-kern.hannken
2004-01-24Add semicolons after variable declarations; closes PR 24201.wiz
2003-11-17Various typo fixes from Jonathon Gray via jmc@openbsd.wiz
2003-06-29Back out the lwp/ktrace changes. They contained a lot of colateral damage,fvdl
and need to be examined and discussed more.
2003-06-28Pass lwp pointers throughtout the kernel, as required, so that the lwpid candarrenr
be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed. Bump the kernel rev up to 1.6V
2003-04-10'tvp' in vop_rename needs to be vput(), not vrele()d, so adjust thejdolecek
description here to match current reality okayed by Bill Studenmund
2003-04-10Use 'void *' instead of 'caddr_t' in prototypes of VOP_IOCTL, VOP_FCNTLjdolecek
and VOP_ADVLOCK
2002-10-23merge kqueue branch into -currentjdolecek
kqueue provides a stateful and efficient event notification framework currently supported events include socket, file, directory, fifo, pipe, tty and device changes, and monitoring of processes and signals kqueue is supported by all writable filesystems in NetBSD tree (with exception of Coda) and all device drivers supporting poll(2) based on work done by Jonathan Lemon for FreeBSD initial NetBSD port done by Luke Mewburn and Jason Thorpe
2001-09-15a whole bunch of changes to improve performance and robustness under load:chs
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places. The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
2001-07-24change vop_symlink and vop_mknod to return vpp (the created node)assar
refed, so that the caller can actually use it. update callers and file systems that implement these vnode operations
2001-05-26replace vm_page_t with struct vm_page *.chs
2001-05-26replace vm_page_t with struct vm_page *.chs
2000-11-27Initial integration of the Unified Buffer Cache project.chs
2000-09-19Add start and end parameters to the fsync VOP, giving a range of thefvdl
file to write out. If both are 0, the whole file is synced. A filesystem that is not able to sync out a range of a file may elect to sync the whole file anyway.
2000-05-13Change the sementics of the last parameter from a boolean ("waitfor") toperseant
a set of flags ("flags"). Two flags are defined, UPDATE_WAIT and UPDATE_DIROP. Under the old semantics, VOP_UPDATE would block if waitfor were set, under the assumption that directory operations should be done synchronously. At least LFS and FFS+softdep do not make this assumption; FFS+softdep got around the problem by enclosing all relevant calls to VOP_UPDATE in a "if(!DOINGSOFTDEP(vp))", while LFS simply ignored waitfor, one of the reasons why NFS-serving an LFS filesystem did not work properly. Under the new semantics, the UPDATE_DIROP flag is a hint to the fs-specific update routine that the call comes from a dirop routine, and should be wait for, or not, accordingly. Closes PR#8996.
1999-12-07Remove duplicate vop_balloc definition accidentally added in rev 1.21.thorpej
1999-12-07Add comments to describe the lookup parameters needed in the variouswrstuden
component name fragments passed into VOP calls.
1999-11-15Add Kirk McKusick's soft updates code to the trunk. Not enabled byfvdl
default, as the copyright on the main file (ffs_softdep.c) is such that is has been put into gnusrc. options SOFTDEP will pull this in. This code also contains the trickle syncer. Bump version number to 1.4O
1999-08-11Modify comments regarding VOP_LOOKUP. Revised lookup description, and alsowrstuden
document both cases which can set PDIRUNLOCK. Reviewed by Bill Sommerfeld.
1999-08-03Add VOP_FCNTL.wrstuden
1999-07-07Update syntax to support WILLUNLOCK and WILLPUT syntax. Change calls whichwrstuden
really vput to indicate that rather than just WILLRELE.
1999-06-21Correct comment about how LOCKPARENT affects VOP_LOOKUPsommerfeld