#
1.44 |
|
06-Aug-2022 |
andvar |
s/blity/bility/ in various words, mainly in comments.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
|
#
1.43 |
|
18-Jul-2021 |
dholland |
Use macros for the canned parts of device and fifo vnode op tables.
Add GENFS_SPECOP_ENTRIES and GENFS_FIFOOP_ENTRIES macros that contain the portion of the vnode ops table declaration that is (conservatively) the same in every fs. Use these in every fs that supports devices and/or fifos with separate ops tables.
Note that ptyfs works differently (it has one type of vnode with open-coded dispatch to the specfs code, which I haven't changed in this commit) and rump/librump/rumpvfs/rumpfs.c has an indirect dynamic dispatch that already does more or less the same thing, which I also haven't changed.
Also note that this anticipates a few bits in the next changeset here and there, and adds missing but unreachable calls in some cases (e.g. most fses weren't defining whiteout on devices and fifos, but it isn't reachable there), and it changes parsepath on devices and fifos to genfs_badop from genfs_parsepath (but it's not reachable there either).
It appears that devices in kernfs were missing kqfilter, so it's possible that if you try to use kqueue on /kern/rootdev that it'll explode.
And finally note that the ops declaration tables aren't order-dependent. (Other than vop_default_desc has to come first.) Otherwise this wouldn't work.
|
#
1.42 |
|
29-Jun-2021 |
dholland |
- Add a new vnode op: VOP_PARSEPATH. - Move namei_getcomponent to genfs_vnops.c and call it genfs_parsepath. - Add a parsepath entry to every vnode ops table.
VOP_PARSEPATH takes a directory vnode to be searched and a complete following path and chooses how much of that path to consume. To begin with, all parsepath calls are genfs_parsepath, which locates the first '/' as always.
Note that the call doesn't take the whole struct componentname, only the string. The other bits of struct componentname should not be needed and there's no reason to cause potential complications by exposing them.
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
|
#
1.41 |
|
27-Jun-2020 |
christos |
branches: 1.41.6; Introduce genfs_pathconf() and use it for the default case in all filesystems.
|
#
1.40 |
|
16-May-2020 |
christos |
Add ACL support for FFS. From FreeBSD.
|
Revision tags: bouyer-xenpvh-base2
|
#
1.39 |
|
23-Apr-2020 |
ad |
PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself)
- Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed somewhere. Use it to decide whether to do direct-mapped copy, rather than poking around directly in the vnode in ubc_uiomove(), which is ugly and doesn't work for tmpfs. It would be nicer to contain all this in UVM but the filesystem provides the needed locking here (VV_MAPPED) and to reinvent that would suck more.
- Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where appropriate.
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
|
#
1.38 |
|
26-May-2017 |
riastradh |
branches: 1.38.20; 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.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
|
#
1.37 |
|
11-Apr-2017 |
riastradh |
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!
|
Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
branches: 1.36.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
branches: 1.35.2; KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|
#
1.43 |
|
18-Jul-2021 |
dholland |
Use macros for the canned parts of device and fifo vnode op tables.
Add GENFS_SPECOP_ENTRIES and GENFS_FIFOOP_ENTRIES macros that contain the portion of the vnode ops table declaration that is (conservatively) the same in every fs. Use these in every fs that supports devices and/or fifos with separate ops tables.
Note that ptyfs works differently (it has one type of vnode with open-coded dispatch to the specfs code, which I haven't changed in this commit) and rump/librump/rumpvfs/rumpfs.c has an indirect dynamic dispatch that already does more or less the same thing, which I also haven't changed.
Also note that this anticipates a few bits in the next changeset here and there, and adds missing but unreachable calls in some cases (e.g. most fses weren't defining whiteout on devices and fifos, but it isn't reachable there), and it changes parsepath on devices and fifos to genfs_badop from genfs_parsepath (but it's not reachable there either).
It appears that devices in kernfs were missing kqfilter, so it's possible that if you try to use kqueue on /kern/rootdev that it'll explode.
And finally note that the ops declaration tables aren't order-dependent. (Other than vop_default_desc has to come first.) Otherwise this wouldn't work.
|
#
1.42 |
|
29-Jun-2021 |
dholland |
- Add a new vnode op: VOP_PARSEPATH. - Move namei_getcomponent to genfs_vnops.c and call it genfs_parsepath. - Add a parsepath entry to every vnode ops table.
VOP_PARSEPATH takes a directory vnode to be searched and a complete following path and chooses how much of that path to consume. To begin with, all parsepath calls are genfs_parsepath, which locates the first '/' as always.
Note that the call doesn't take the whole struct componentname, only the string. The other bits of struct componentname should not be needed and there's no reason to cause potential complications by exposing them.
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.41 |
|
27-Jun-2020 |
christos |
Introduce genfs_pathconf() and use it for the default case in all filesystems.
|
#
1.40 |
|
16-May-2020 |
christos |
Add ACL support for FFS. From FreeBSD.
|
Revision tags: bouyer-xenpvh-base2
|
#
1.39 |
|
23-Apr-2020 |
ad |
PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself)
- Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed somewhere. Use it to decide whether to do direct-mapped copy, rather than poking around directly in the vnode in ubc_uiomove(), which is ugly and doesn't work for tmpfs. It would be nicer to contain all this in UVM but the filesystem provides the needed locking here (VV_MAPPED) and to reinvent that would suck more.
- Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where appropriate.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
|
#
1.38 |
|
26-May-2017 |
riastradh |
branches: 1.38.20; 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.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
|
#
1.37 |
|
11-Apr-2017 |
riastradh |
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!
|
Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
branches: 1.36.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
branches: 1.35.2; KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|
#
1.42 |
|
29-Jun-2021 |
dholland |
- Add a new vnode op: VOP_PARSEPATH. - Move namei_getcomponent to genfs_vnops.c and call it genfs_parsepath. - Add a parsepath entry to every vnode ops table.
VOP_PARSEPATH takes a directory vnode to be searched and a complete following path and chooses how much of that path to consume. To begin with, all parsepath calls are genfs_parsepath, which locates the first '/' as always.
Note that the call doesn't take the whole struct componentname, only the string. The other bits of struct componentname should not be needed and there's no reason to cause potential complications by exposing them.
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.41 |
|
27-Jun-2020 |
christos |
Introduce genfs_pathconf() and use it for the default case in all filesystems.
|
#
1.40 |
|
16-May-2020 |
christos |
Add ACL support for FFS. From FreeBSD.
|
Revision tags: bouyer-xenpvh-base2
|
#
1.39 |
|
23-Apr-2020 |
ad |
PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself)
- Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed somewhere. Use it to decide whether to do direct-mapped copy, rather than poking around directly in the vnode in ubc_uiomove(), which is ugly and doesn't work for tmpfs. It would be nicer to contain all this in UVM but the filesystem provides the needed locking here (VV_MAPPED) and to reinvent that would suck more.
- Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where appropriate.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
|
#
1.38 |
|
26-May-2017 |
riastradh |
branches: 1.38.20; 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.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
|
#
1.37 |
|
11-Apr-2017 |
riastradh |
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!
|
Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
branches: 1.36.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
branches: 1.35.2; KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|
#
1.41 |
|
27-Jun-2020 |
christos |
Introduce genfs_pathconf() and use it for the default case in all filesystems.
|
#
1.40 |
|
16-May-2020 |
christos |
Add ACL support for FFS. From FreeBSD.
|
Revision tags: bouyer-xenpvh-base2
|
#
1.39 |
|
23-Apr-2020 |
ad |
PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself)
- Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed somewhere. Use it to decide whether to do direct-mapped copy, rather than poking around directly in the vnode in ubc_uiomove(), which is ugly and doesn't work for tmpfs. It would be nicer to contain all this in UVM but the filesystem provides the needed locking here (VV_MAPPED) and to reinvent that would suck more.
- Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where appropriate.
|
Revision tags: phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
|
#
1.38 |
|
26-May-2017 |
riastradh |
branches: 1.38.20; 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.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
|
#
1.37 |
|
11-Apr-2017 |
riastradh |
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!
|
Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
branches: 1.36.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
branches: 1.35.2; KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|
#
1.40 |
|
16-May-2020 |
christos |
Add ACL support for FFS. From FreeBSD.
|
Revision tags: bouyer-xenpvh-base2
|
#
1.39 |
|
23-Apr-2020 |
ad |
PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself)
- Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed somewhere. Use it to decide whether to do direct-mapped copy, rather than poking around directly in the vnode in ubc_uiomove(), which is ugly and doesn't work for tmpfs. It would be nicer to contain all this in UVM but the filesystem provides the needed locking here (VV_MAPPED) and to reinvent that would suck more.
- Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where appropriate.
|
Revision tags: phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
|
#
1.38 |
|
26-May-2017 |
riastradh |
branches: 1.38.20; 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.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
|
#
1.37 |
|
11-Apr-2017 |
riastradh |
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!
|
Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
branches: 1.36.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
branches: 1.35.2; KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|
#
1.39 |
|
23-Apr-2020 |
ad |
PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself)
- Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed somewhere. Use it to decide whether to do direct-mapped copy, rather than poking around directly in the vnode in ubc_uiomove(), which is ugly and doesn't work for tmpfs. It would be nicer to contain all this in UVM but the filesystem provides the needed locking here (VV_MAPPED) and to reinvent that would suck more.
- Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where appropriate.
|
Revision tags: phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
|
#
1.38 |
|
26-May-2017 |
riastradh |
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.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
|
#
1.37 |
|
11-Apr-2017 |
riastradh |
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!
|
Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
branches: 1.36.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
branches: 1.35.2; KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|
#
1.38 |
|
26-May-2017 |
riastradh |
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.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
|
#
1.37 |
|
11-Apr-2017 |
riastradh |
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!
|
Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
branches: 1.36.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
branches: 1.35.2; KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|
Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
|
#
1.37 |
|
11-Apr-2017 |
riastradh |
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!
|
Revision tags: jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
branches: 1.36.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
branches: 1.35.2; KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.36 |
|
20-Aug-2016 |
hannken |
Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.35 |
|
07-Jul-2016 |
msaitoh |
KNF. Remove extra spaces. No functional change.
|
Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.34 |
|
02-Mar-2016 |
christos |
PR/50883: David Binderman: Remove redundant code.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.33 |
|
07-Aug-2014 |
hannken |
branches: 1.33.4; Change efs from hashlist to vcache.
|
#
1.32 |
|
25-Jul-2014 |
dholland |
Add VOP_FALLOCATE and VOP_FDISCARD to every vnode ops table I can find.
The filesystem ones all call genfs_eopnotsupp - right now I am only implementing the plumbing and we can implement fallocate and/or fdiscard for files later.
The device ones call spec_fallocate (which is also genfs_eopnotsupp) and spec_fdiscard, which dispatches to the device-level op.
The fifo ones all call vn_fifo_bypass, which also ends up being EOPNOTSUPP.
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.31 |
|
07-Feb-2014 |
hannken |
branches: 1.31.2; Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.30 |
|
18-Mar-2013 |
plunky |
branches: 1.30.6; C99 section 6.7.2.3 (Tags) Note 3 states that:
A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type it specifies is complete.
which means that we cannot pass an "enum vtype" argument to kauth_access_action() without fully specifying the type first. Unfortunately there is a complicated include file loop which makes that difficult, so convert this minimal function into a macro (and capitalize it).
(ok elad@)
|
Revision tags: yamt-pagecache-base8
|
#
1.29 |
|
20-Dec-2012 |
hannken |
Change bread() and breadn() to never return a buffer on error and modify all callers to not brelse() on error.
Welcome to 6.99.16
PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
|
Revision tags: yamt-pagecache-base7
|
#
1.28 |
|
05-Nov-2012 |
dholland |
Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
#
1.27 |
|
05-Nov-2012 |
dholland |
Disentangle the namecache from the internals of namei.
- Move the namecache's hash computation to inside the namecache code, instead of being spread out all over the place. Remove cn_hash from struct componentname and delete all uses of it.
- It is no longer necessary (if it ever was) for cache_lookup and cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases that cache_enter already checks for.
- Rearrange the interface of cache_lookup (and cache_lookup_raw) to make it somewhat simpler, to exclude certain nonexistent error conditions, and (most importantly) to make it not require write access to cnp->cn_flags.
This change requires a kernel bump.
|
Revision tags: yamt-pagecache-base6
|
#
1.26 |
|
22-Jul-2012 |
rmind |
branches: 1.26.2; Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8
|
#
1.25 |
|
13-Mar-2012 |
elad |
Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
Revision tags: jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.24 |
|
19-May-2011 |
rmind |
branches: 1.24.4; 1.24.8; 1.24.10; Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.23 |
|
30-Nov-2010 |
dholland |
branches: 1.23.2; Abolish the SAVENAME and HASBUF flags. There is now always a buffer, so the path in a struct componentname is now always valid during VOP calls.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
|
#
1.22 |
|
24-Jun-2010 |
hannken |
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.
|
Revision tags: uebayasi-xip-base1
|
#
1.21 |
|
29-Mar-2010 |
pooka |
Stop exposing fifofs internals and leave only fifo_vnodeop_p visible.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 jym-xensuspend-nbase
|
#
1.20 |
|
03-Jul-2009 |
pooka |
branches: 1.20.2; 1.20.4; Fix utterly botched previous commit. efs compiles now and apprears to work, but the person doing the original change should verify that it actually works like before the change.
(hi, elad!)
|
#
1.19 |
|
03-Jul-2009 |
elad |
Where possible, extract the file-system's access() routine to two internal functions: the first checking if the operation is possible (regardless of permissions), the second checking file-system permissions, ACLs, etc.
Mailing list reference:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html
|
#
1.18 |
|
23-Jun-2009 |
elad |
Move the implementation of vaccess() to genfs_can_access(), in line with the other routines of the same spirit.
Adjust file-system code to use it.
Keep vaccess() for KPI compatibility and to keep element of least surprise. A "diagnostic" message warning that vaccess() is deprecated will be printed when it's used (obviously, only in DIAGNOSTIC kernels).
No objections on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html
|
Revision tags: yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.17 |
|
01-Dec-2008 |
pooka |
branches: 1.17.4; Add specfs/fifofs support. Not really fully tested, but at least vfs routines don't crash now. (didn't have an image with matching device node numbers)
fixes PR kern/40055 by myself
|
#
1.16 |
|
26-Nov-2008 |
pooka |
Rototill all remaining file systems to use ubc_uiomove() instead of the ubc_alloc() - uiomove() - ubc_release() dance.
|
#
1.15 |
|
16-Nov-2008 |
pooka |
more <sys/buf.h> police
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.14 |
|
25-Jan-2008 |
ad |
branches: 1.14.6; 1.14.10; 1.14.16; 1.14.18; 1.14.20; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.13 |
|
02-Jan-2008 |
ad |
Merge vmlocking2 to head.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase reinoud-bufcleanup-base vmlocking2-base1 vmlocking-nbase jmcneill-pm-base
|
#
1.12 |
|
26-Nov-2007 |
pooka |
branches: 1.12.2; 1.12.6; 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
|
Revision tags: jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 vmlocking-base
|
#
1.11 |
|
10-Oct-2007 |
ad |
branches: 1.11.4; Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
#
1.10 |
|
08-Oct-2007 |
ad |
Merge brelse() changes from the vmlocking branch.
|
Revision tags: yamt-x86pmap-base2
|
#
1.9 |
|
24-Sep-2007 |
rumble |
Avoid stack allocation of large dirent structures in foo_readdir().
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
#
1.8 |
|
08-Sep-2007 |
rumble |
branches: 1.8.2; In efs_readdir don't foolishly allocate and free dirents for each entry before copying them out, rather just use a single one. Further, follow the example of tmpfs and others by simply allocating on the stack.
This should have the side-effect of silencing false Coverity reports like CID 4559 and 4554.
|
#
1.7 |
|
08-Sep-2007 |
rumble |
CID 4553:
In efs_lookup, when checking whether a CREATE or RENAME operation would succeed, be sure to pass the appropriate vnode pointer to VOP_ACCESS.
|
Revision tags: matt-mips64-base
|
#
1.6 |
|
29-Jul-2007 |
rumble |
branches: 1.6.4; 1.6.6; 1.6.8; 1.6.10; Only set *ap->a_cookies when we're returning success. Also, do not hard- code 16, but rather use _DIRENT_MINSIZE as the divisor when determining the number of cookies to allocate.
Noticed by pooka@.
|
#
1.5 |
|
29-Jul-2007 |
rumble |
Support NFS cookies and the eofflag in efs_readdir. Also, be sure to update uio->uio_offset as not doing so would cause large directory reads to misbehave.
EFS is now properly NFS-exportable.
|
#
1.4 |
|
29-Jul-2007 |
ad |
It's not a good idea for device drivers to modify b_flags, as they don't need to understand the locking around that field. Instead of setting B_ERROR, set b_error instead. b_error is 'owned' by whoever completes the I/O request.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.3 |
|
04-Jul-2007 |
rumble |
branches: 1.3.2; 1.3.4; Additional fixes/enhancements: 1) Comply with the way buffercache(9) is intended to be used. Now we read in single blocks of EFS_BB_SIZE, never taking in variable length extents with a single bread() call.
2) Handle symlinks with more than one extent. There's no reason for this to ever happen, but it's handled now.
3) Finally, add a hint to our iteration initialiser so we can start from the desired offset, rather than naively looping through from the beginning each time. Since we can binary search the correct location quickly, this improves large sequential reads by about 40% with 128MB files. Improvement should increase with file size.
|
#
1.2 |
|
04-Jul-2007 |
rumble |
Fix a significant performance bug in efs_read:
When reading a file, we would erroneously iterate to the next extent before having filled the entire uio request. This lead to unnecessary extent iteration and excessive calls to efs_read.
Sequential read performance has doubled in the uncached case and quadrupled when data is buffered.
|
#
1.1 |
|
29-Jun-2007 |
rumble |
Add read-only support for SGI's Extent File System.
Reviewed by pooka@.
|