History log of /src/sys/miscfs/genfs/genfs_node.h |
Revision | | Date | Author | Comments |
1.24 |
| 14-Mar-2020 |
ad | Update a comment.
|
1.23 |
| 15-Jan-2020 |
ad | Merge from yamt-pagecache (after much testing):
- Reduce unnecessary page scan in putpages esp. when an object has a ton of pages cached but only a few of them are dirty.
- Reduce the number of pmap operations by tracking page dirtiness more precisely in uvm layer.
|
1.22 |
| 28-May-2018 |
chs | branches: 1.22.2; 1.22.8; add a genfs method to allow a file system to limit the range of pages that are given to a single GOP_WRITE() call. needed by ZFS.
|
1.21 |
| 06-Jun-2013 |
dholland | branches: 1.21.32; Add missing declaration of struct vnode.
|
1.20 |
| 01-Sep-2010 |
chs | branches: 1.20.8; 1.20.18; replace the earlier workaround for PR 40389 with a better fix. the earlier change caused data corruption by freeing pages without invaliding their mappings. instead of the trylock/retry, just take the genfs-node lock before calling VOP_GETPAGES() and pass a new flag to tell it that we're already holding this lock.
|
1.19 |
| 27-Jan-2010 |
uebayasi | branches: 1.19.2; 1.19.4; Don't forget to tell the result of rw_tryenter().
|
1.18 |
| 27-Jan-2010 |
uebayasi | Add genfs_node_rdtrylock().
|
1.17 |
| 14-May-2008 |
reinoud | branches: 1.17.8; 1.17.14; 1.17.16; Import writing part of the UDF file system making optical media like CD's and DVD's behave like floppy discs. Writing is supported upto and including version 2.01; version 2.50 and 2.60 will follow.
Also extending the UDF implementation to support symbolic links and hardlinks.
Added are the mmcformat(8) tool to format rewritable CD/DVD discs and newfs_udf(8).
Limitations: all operations can be performed on the file system though the sheduling is currently optimised for archiving workloads.
mv(1)/rename(2) is currently only implemented for non-directories.
|
1.16 |
| 20-Feb-2007 |
ad | branches: 1.16.38; 1.16.40; 1.16.42; 1.16.44; Add genfs_node_destroy(). Fixes a lock "leak" seen when running LOCKDEBUG kernels.
|
1.15 |
| 15-Feb-2007 |
ad | branches: 1.15.2; Replace some uses of lockmgr() / simplelocks.
|
1.14 |
| 14-Oct-2006 |
yamt | add wrapper functions of lockmgr on g_glock.
|
1.13 |
| 06-Oct-2006 |
dogcow | fix build error in mount_sysvbfs.
|
1.12 |
| 05-Oct-2006 |
chs | add support for O_DIRECT (I/O directly to application memory, bypassing any kernel caching for file data).
|
1.11 |
| 14-May-2006 |
elad | branches: 1.11.8; 1.11.10; integrate kauth.
|
1.10 |
| 30-Mar-2006 |
yamt | some cleanups after the introduction of GOP_SIZE_MEM flag. - remove GOP_SIZE_READ/GOP_SIZE_WRITE flags. they have not been used since the change. - ufs_balloc_range: remove code which has been no-op since the change. thanks Konrad Schroder for explaining the original intention of the code. - ffs_gop_size: don't extend past eof, in the case of GOP_SIZE_MEM. otherwise genfs_getpages end up to allocate pages past eof unnecessarily.
|
1.9 |
| 11-Dec-2005 |
christos | branches: 1.9.4; 1.9.6; 1.9.8; 1.9.10; 1.9.12; merge ktrace-lwp.
|
1.8 |
| 23-Jul-2005 |
yamt | update file timestamps for nfsd loaned-read and mmap. PR/25279. discussed on tech-kern@.
|
1.7 |
| 17-Jul-2005 |
yamt | ensure that vnodes with dirty pages are always on syncer's queue.
- genfs_putpages: wait for i/o completion of PG_RELEASED/PG_PAGEOUT pages by setting "wasclean" false when encountering them. suggested by Stephan Uphoff in PR/24596 (1).
- genfs_putpages: write protect pages when cleaning out, if we're going to take the vnode off the syncer's queue. uvm_fault: don't write-map pages unless its vnode is already on the syncer's queue.
fix PR/24596 (3) but in the different way from the suggested fix. (to keep our current behaviour, ie. not to require explicit msync. discussed on tech-kern@.)
- genfs_putpages: don't mistakenly take a vnode off the queue by introducing a generation number in genfs_node. genfs_getpages: increment the generation number. suggested by Stephan Uphoff in PR/24596 (2).
- add some assertions.
|
1.6 |
| 28-Jun-2005 |
yamt | branches: 1.6.2; - constify genfs_ops. - use member designators.
|
1.5 |
| 24-Sep-2003 |
yamt | branches: 1.5.14; fix a bug of lfs.
genfs_getpages() can read in more blocks than it should due to faked filesize of lfs_gop_size(). it's a security problem and it makes gcc3 "internal error"
to fix this, - in genfs_getpages(), always calculate diskeof and memeof separately so that filesystems (in this case, lfs) can use different strategies for them. - introduce GOP_SIZE_MEM flag and use it to request in-core filesize. (it was an intention of GOP_SIZE_READ, but after the above change _READ is not a straightforward name)
after this, no one uses GOP_SIZE_{READ,WRITE} anymore but leave them for now.
|
1.4 |
| 17-Feb-2003 |
perseant | branches: 1.4.2; Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now (there are still some details to work out) but expect that to go away soon. To support these basic changes (creation of lfs_putpages, lfs_gop_write, mods to lfs_balloc) several other changes were made, to wit:
* Create a writer daemon kernel thread whose purpose is to handle page writes for the pagedaemon, but which also takes over some of the functions of lfs_check(). This thread is started the first time an LFS is mounted.
* Add a "flags" parameter to GOP_SIZE. Current values are GOP_SIZE_READ, meaning that the call should return the size of the in-core version of the file, and GOP_SIZE_WRITE, meaning that it should return the on-disk size. One of GOP_SIZE_READ or GOP_SIZE_WRITE must be specified.
* Instead of using malloc(...M_WAITOK) for everything, reserve enough resources to get by and use malloc(...M_NOWAIT), using the reserves if necessary. Use the pool subsystem for structures small enough that this is feasible. This also obsoletes LFS_THROTTLE.
And a few that are not strictly necessary:
* Moves the LFS inode extensions off onto a separately allocated structure; getting closer to LFS as an LKM. "Welcome to 1.6O."
* Unified GOP_ALLOC between FFS and LFS.
* Update LFS copyright headers to correct values.
* Actually cast to unsigned in lfs_shellsort, like the comment says.
* Keep track of which segments were empty before the previous checkpoint; any segments that pass two checkpoints both dirty and empty can be summarily cleaned. Do this. Right now lfs_segclean still works, but this should be turned into an effectless compatibility syscall.
|
1.3 |
| 18-Dec-2001 |
chs | branches: 1.3.2; add some compatibility routines to allow mmap() to work non-UBCified filesystems (in the same non-coherent fashion that they worked before).
|
1.2 |
| 15-Sep-2001 |
chs | branches: 1.2.2; 1.2.4; add a forward decl for struct vm_page.
|
1.1 |
| 15-Sep-2001 |
chs | interfaces and structures used by new genfs_{get,put}pages().
|
1.2.4.2 |
| 01-Oct-2001 |
fvdl | Catch up with -current.
|
1.2.4.1 |
| 15-Sep-2001 |
fvdl | file genfs_node.h was added on branch thorpej-devvp on 2001-10-01 12:47:18 +0000
|
1.2.2.3 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.2.2.2 |
| 21-Sep-2001 |
nathanw | Catch up to -current.
|
1.2.2.1 |
| 15-Sep-2001 |
nathanw | file genfs_node.h was added on branch nathanw_sa on 2001-09-21 22:36:37 +0000
|
1.3.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.3.2.1 |
| 18-Dec-2001 |
thorpej | file genfs_node.h was added on branch kqueue on 2002-01-10 20:01:34 +0000
|
1.4.2.4 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.4.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.4.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.4.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.5.14.1 |
| 24-Aug-2005 |
riz | Pull up following revision(s) (requested by yamt in ticket #688): sys/miscfs/genfs/genfs_vnops.c: revision 1.98 via patch sys/ufs/ffs/ffs_vfsops.c: revision 1.165 sys/ufs/lfs/lfs_extern.h: revision 1.69 sys/fs/filecorefs/filecore_vfsops.c: revision 1.20 sys/nfs/nfs_node.c: revision 1.80 sys/fs/smbfs/smbfs_node.c: revision 1.24 sys/fs/cd9660/cd9660_vfsops.c: revision 1.24 sys/fs/msdosfs/msdosfs_denode.c: revision 1.8 sys/miscfs/genfs/genfs_node.h: revision 1.6 sys/ufs/lfs/lfs_vfsops.c: revision 1.183 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.86 sys/fs/adosfs/advfsops.c: revision 1.23 sys/fs/ntfs/ntfs_vfsops.c: revision 1.31 - constify genfs_ops. - use member designators.
sys/miscfs/genfs/genfs_vnops.c: revision 1.99 via patch genfs_getpages: don't forget to put the vnode onto the syncer's work que ue even in the case of PGO_LOCKED.
sys/uvm/uvm_bio.c: revision 1.40 sys/uvm/uvm_pager.h: revision 1.29 sys/miscfs/genfs/genfs_vnops.c: revision 1.100 via patch sys/ufs/ufs/ufs_inode.c: revision 1.50 - introduce PGO_NOBLOCKALLOC and use it for ubc mapping to prevent unnecessary block allocations in the case that page size > block size. - ufs_balloc_range: use VM_PROT_WRITE+PGO_NOBLOCKALLOC rather than VM_PROT_READ.
sys/uvm/uvm_fault.c: revision 1.96 sys/miscfs/genfs/genfs_vnops.c: revision 1.101 via patch sys/uvm/uvm_object.h: revision 1.19 sys/miscfs/genfs/genfs_node.h: revision 1.7 ensure that vnodes with dirty pages are always on syncer's queue. - genfs_putpages: wait for i/o completion of PG_RELEASED/PG_PAGEOUT pages by setting "wasclean" false when encountering them. suggested by Stephan Uphoff in PR/24596 (1). - genfs_putpages: write protect pages when cleaning out, if we're going to take the vnode off the syncer's queue. uvm_fault: don't write-map pages unless its vnode is already on the syncer's queue. fix PR/24596 (3) but in the different way from the suggested fix. (to keep our current behaviour, ie. not to require explicit msync. discussed on tech-kern@.) - genfs_putpages: don't mistakenly take a vnode off the queue by introducing a generation number in genfs_node. genfs_getpages: increment the generation number. suggested by Stephan Uphoff in PR/24596 (2). - add some assertions.
sys/miscfs/genfs/genfs_vnops.c: revision 1.102 via patch genfs_putpages: don't bother to clean the vnode unless VONWORKLST.
sys/ufs/ffs/ffs_vnops.c: revision 1.71 ffs_full_fsync: because VBLK/VCHR can be mmap'ed, do VOP_PUTPAGES for them as well.
sys/uvm/uvm_fault.c: revision 1.97 uvm_fault: check a correct object in the case of layered filesystems. fix PR/30811 from Jukka Salmi.
sys/uvm/uvm_object.h: revision 1.20 sys/ufs/ffs/ffs_vfsops.c: revision 1.167 sys/uvm/uvm_bio.c: revision 1.41 sys/ufs/ufs/ufs_vnops.c: revision 1.129 sys/uvm/uvm_mmap.c: revision 1.92 sys/uvm/uvm_fault.c: revision 1.98 sys/kern/vfs_subr.c: revision 1.252 sys/fs/msdosfs/denode.h: revision 1.5 sys/miscfs/genfs/genfs_vnops.c: revision 1.103 via patch sys/fs/msdosfs/msdosfs_denode.c: revision 1.9 sys/sys/vnode.h: revision 1.141 sys/ufs/ufs/ufs_inode.c: revision 1.51 sys/ufs/ufs/ufs_extern.h: revision 1.45 via patch sys/miscfs/genfs/genfs_node.h: revision 1.8 sys/ufs/lfs/lfs_vfsops.c: revision 1.184 sys/uvm/uvm_pager.h: revision 1.30 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.87 update file timestamps for nfsd loaned-read and mmap. PR/25279. discussed on tech-kern@.
sys/miscfs/genfs/genfs_vnops.c: revision 1.104 via patch don't write-protect wired pages. pointed by Chuck Silvers. for now, leave a vnode on the syncer's queue, as suggested by him.
sys/ufs/ffs/ffs_vnops.c: revision 1.72 revert VCHR part of ffs_vnops.c 1.71. as VCHR uses the device pager, no point to call VOP_PUTPAGES here. pointed by Chuck Silvers.
|
1.6.2.3 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.6.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.6.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.9.12.2 |
| 24-May-2006 |
tron | Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
|
1.9.12.1 |
| 31-Mar-2006 |
tron | Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
|
1.9.10.3 |
| 20-Apr-2006 |
christos | kauth_cred_t -> struct kauth_cred;
|
1.9.10.2 |
| 19-Apr-2006 |
elad | sync with head.
|
1.9.10.1 |
| 08-Mar-2006 |
elad | Adapt to kernel authorization KPI.
|
1.9.8.2 |
| 24-May-2006 |
yamt | sync with head.
|
1.9.8.1 |
| 01-Apr-2006 |
yamt | sync with head.
|
1.9.6.2 |
| 01-Jun-2006 |
kardel | Sync with head.
|
1.9.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.9.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.11.10.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.11.8.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.15.2.1 |
| 27-Feb-2007 |
yamt | - sync with head. - move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
|
1.16.44.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.16.42.3 |
| 09-Oct-2010 |
yamt | sync with head
|
1.16.42.2 |
| 11-Mar-2010 |
yamt | sync with head
|
1.16.42.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.16.40.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.16.38.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.17.16.1 |
| 20-May-2011 |
matt | bring matt-nb5-mips64 up to date with netbsd-5-1-RELEASE (except compat).
|
1.17.14.1 |
| 07-Sep-2010 |
bouyer | Pull up following revision(s) (requested by chs in ticket #1448): sys/uvm/uvm_pager.h: revision 1.39 via patch sys/miscfs/genfs/genfs_vnops.c: revision 1.183 via patch sys/ufs/ufs/ufs_inode.c: revision 1.83 via patch sys/miscfs/genfs/genfs_io.c: revision 1.40 via patch sys/miscfs/genfs/genfs_node.h: revision 1.20 via patch replace the earlier workaround for PR 40389 with a better fix. the earlier change caused data corruption by freeing pages without invaliding their mappings. instead of the trylock/retry, just take the genfs-node lock before calling VOP_GETPAGES() and pass a new flag to tell it that we're already holding this lock.
|
1.17.8.1 |
| 07-Sep-2010 |
bouyer | Pull up following revision(s) (requested by chs in ticket #1448): sys/uvm/uvm_pager.h: revision 1.39 via patch sys/miscfs/genfs/genfs_vnops.c: revision 1.183 via patch sys/ufs/ufs/ufs_inode.c: revision 1.83 via patch sys/miscfs/genfs/genfs_io.c: revision 1.40 via patch sys/miscfs/genfs/genfs_node.h: revision 1.20 via patch replace the earlier workaround for PR 40389 with a better fix. the earlier change caused data corruption by freeing pages without invaliding their mappings. instead of the trylock/retry, just take the genfs-node lock before calling VOP_GETPAGES() and pass a new flag to tell it that we're already holding this lock.
|
1.19.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.19.2.1 |
| 22-Oct-2010 |
uebayasi | Sync with HEAD (-D20101022).
|
1.20.18.1 |
| 23-Jun-2013 |
tls | resync from head
|
1.20.8.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.20.8.1 |
| 20-Nov-2011 |
yamt | - simplify code - comments
|
1.21.32.1 |
| 25-Jun-2018 |
pgoyette | Sync with HEAD
|
1.22.8.1 |
| 17-Jan-2020 |
ad | Sync with head.
|
1.22.2.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|