#
1.88 |
|
20-Oct-2021 |
thorpej |
Overhaul of the EVFILT_VNODE kevent(2) filter:
- Centralize vnode kevent handling in the VOP_*() wrappers, rather than forcing each individual file system to deal with it (except VOP_RENAME(), because VOP_RENAME() is a mess and we currently have 2 different ways of handling it; at least it's reasonably well-centralized in the "new" way). - Add support for NOTE_OPEN, NOTE_CLOSE, NOTE_CLOSE_WRITE, and NOTE_READ, compatible with the same events in FreeBSD. - Track which kevent notifications clients are interested in receiving to avoid doing work for events no one cares about (avoiding, e.g. taking locks and traversing the klist to send a NOTE_WRITE when someone is merely watching for a file to be deleted, for example).
In support of the above:
- Add support in vnode_if.sh for specifying PRE- and POST-op handlers, to be invoked before and after vop_pre() and vop_post(), respectively. Basic idea from FreeBSD, but implemented differently. - Add support in vnode_if.sh for specifying CONTEXT fields in the vop_*_args structures. These context fields are used to convey information between the file system VOP function and the VOP wrapper, but do not occupy an argument slot in the VOP_*() call itself. These context fields are initialized and subsequently interpreted by PRE- and POST-op handlers. - Version VOP_REMOVE(), uses the a context field for the file system to report back the resulting link count of the target vnode. Return this in tmpfs, udf, nfs, chfs, ext2fs, lfs, and ufs.
NetBSD 9.99.92.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
|
#
1.87 |
|
18-Jul-2021 |
dholland |
Abolish all the silly indirection macros for initializing vnode ops tables.
These are things of the form #define foofs_op genfs_op, or #define foofs_op genfs_eopnotsupp, or similar. They serve no purpose besides obfuscation, and have gotten cutpasted all over everywhere.
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
|
#
1.86 |
|
16-May-2020 |
christos |
branches: 1.86.6; Add ACL support for FFS. From FreeBSD.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.85 |
|
18-Apr-2020 |
christos |
Extended attribute support for ffsv2, from FreeBSD.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1
|
#
1.84 |
|
17-Jan-2020 |
ad |
branches: 1.84.4; VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 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 prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
|
#
1.83 |
|
28-Oct-2016 |
jdolecek |
branches: 1.83.16; 1.83.22; reorganize ffs_truncate()/ffs_indirtrunc() to be able to partially succeed; change wapbl_register_deallocation() to return EAGAIN rather than panic when code hits the limit
callers changed to either loop calling ffs_truncate() using new utility ufs_truncate_retry() if their semantics requires it, or just ignore the failure; remove ufs_wapbl_truncate()
this fixes possible user-triggerable panic during truncate, and resolves WAPBL performance issue with truncates of large files
PR kern/47146 and kern/49175
|
Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422
|
#
1.82 |
|
12-Apr-2016 |
christos |
branches: 1.82.2; Remove gcc hack, it does not help. Add more const.
|
#
1.81 |
|
12-Apr-2016 |
christos |
Provide reason to be printed in panic string.
|
#
1.80 |
|
11-Apr-2016 |
christos |
misc cleanups, no functional change
|
Revision tags: nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.79 |
|
27-Mar-2015 |
riastradh |
Disentangle buffer-cached I/O from page-cached I/O in UFS.
Page-cached I/O is used for regular files, and is initiated by VFS users such as userland and NFS.
Buffer-cached I/O is used for directories and symlinks, and is issued only internally by UFS.
New UFS routine ufs_bufio replaces vn_rdwr for internal use. ufs_bufio is implemented by new UFS operations uo_bufrd/uo_bufwr, which sit in ufs_readwrite.c alongside the VOP_READ/VOP_WRITE implementations.
I preserved the code as much as possible and will leave further simplification for future commits. I kept the ulfs_readwrite.c copypasta close to ufs_readwrite.c in case we ever want to merge them back; likewise ext2fs_readwrite.c.
No externally visible semantic change. All atf fs tests still pass.
|
#
1.78 |
|
17-Mar-2015 |
hannken |
Change ffs to use vcache_new: - Change ffs_valloc to return an inode number. - Remove now obsolete UFS operations UFS_VALLOC and UFS_VFREE. - Make ufs_makeinode private to ufs_vnops.c and pass vattr instead of mode.
|
Revision tags: nick-nhusb-base
|
#
1.77 |
|
29-Oct-2014 |
christos |
branches: 1.77.2; simplify and correct.
|
#
1.76 |
|
21-Oct-2014 |
slp |
Move and unify indirect block truncate algorithm into a separate function.
Reviewed by joerg.
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.75 |
|
25-May-2014 |
hannken |
branches: 1.75.2; Remove ufs_checkpath() and ufs_readdotdot(). These are relics from the pre-genfs_rename era.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.74 |
|
08-May-2014 |
hannken |
Add a global vnode cache:
- vcache_get() retrieves a referenced and initialised vnode / fs node pair. - vcache_remove() removes a vnode / fs node pair from the cache.
On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to initialise a vnode / fs node pair. This call is guaranteed exclusive, no other thread will try to load this vnode / fs node pair.
Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.
Remove now unused ufs/ufs_ihash
Discussed on tech-kern.
Welcome to 6.99.41
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.73 |
|
16-Jun-2013 |
hannken |
branches: 1.73.2; 1.73.6; Add an UFS_SNAPGONE() ufs op replacing the calls to ffs_snapgone() in ufs_lookup.c.
Ok: David Holland <dholland@netbsd.org>
Welcome to 6.99.22
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5
|
#
1.72 |
|
09-May-2012 |
riastradh |
branches: 1.72.2; Adapt ffs, lfs, and ext2fs to use genfs_rename.
ok dholland, rmind
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.71 |
|
01-Feb-2012 |
dholland |
Change the syscall API for quotas over to the new non-proplib one.
- struct vfs_quotactl_args -> struct quotactl_args - add sys/stdint.h to sys/quotactl.h for clean userland build - install sys/quotactl.h in /usr/include - update set lists for same - add new marshalling code in libquota - add new unmarshalling code in vfs_syscalls.c - discard proplib interpreter code in vfs_quotactl.c - add dispatching code for the 14 quotactl ops in vfs_quotactl.c - mark the proplib quotactl syscall obsolete - add a new syscall number for the new quotactl syscall - change the name of the syscall to __quotactl() - remove the decl of the old quotactl from quota/quotaprop.h - add a decl of the new quotactl to sys/quotactl.h - update the libc build - update ktruss - remove proplib marshalling code from libquota - update copy of syscall table in gdb ppc sources - hack rumphijack to accomodate new quotactl name (as I recall, pooka wanted such a name change to simplify something, but I don't really see what/how)
This change appears to require a kernel version bump for rumpish reasons.
|
#
1.70 |
|
29-Jan-2012 |
dholland |
Remove the extra op argument to VFS_QUOTACTL() - the op is now stored purely in the args structure.
This change requires a kernel version bump.
|
#
1.69 |
|
29-Jan-2012 |
dholland |
Introduce struct vfs_quotactl_args. Use it.
This change uglifies vfs_quotactl some in order to make room for moving operation-specific but FS-independent logic out of ufs_quota.c.
Note: this change requires a kernel version bump.
|
#
1.68 |
|
29-Jan-2012 |
dholland |
Move the proplib-based quota command dispatching (that is, the code that knows the magic string names for the allowed actions) out of UFS-specific code and to fs-independent code.
This introduces QUOTACTL_* operation codes and changes the signature of VFS_QUOTACTL() again for compile safety.
Note: this change requires a kernel version bump.
|
#
1.67 |
|
29-Jan-2012 |
dholland |
Move the code for iterating over the multiple RPC calls in a quota proplib XML packet to vfs_quotactl.c out of sys/ufs/ufs.
Add a dummy extra arg to VFS_QUOTACTL for compile safety.
Note: this change requires a kernel version bump.
|
Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.66 |
|
17-Jul-2011 |
dholland |
branches: 1.66.2; 1.66.6; Provide correct locking for ufs_wapbl_rename. Note that this does not fix the non-wapbl rename; that will be coming soon. This patch also leaves a lot of the older locking-related code around in #if 0 blocks, and there's a lot of leftover redundant logic. All that will be going away later.
Relates to at least these PRs:
PR kern/24887 PR kern/41417 PR kern/42093 PR kern/43626
and possibly others.
|
#
1.65 |
|
12-Jul-2011 |
dholland |
Pass the ufs_lookup_results pointer around instead of fetching it from the inode in the guts of ufs. Now, in VOPs where i_crap is used it is used (directly) only immediately on entry to the VOP call and then passed around by reference.
Except for rename, which needs explicit sorting out. The code in ufs_wapbl_rename is unchanged in behavior but I'm increasingly inclined to think it's wrong.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.64 |
|
04-Apr-2011 |
ahoka |
add "struct ufid;" so we can include it without ufs/inode.h
|
#
1.63 |
|
06-Mar-2011 |
bouyer |
merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 jym-xensuspend-nbase
|
#
1.62 |
|
13-Sep-2009 |
tsutsui |
branches: 1.62.4; 1.62.6; 1.62.8; Move declaration of ufs_hashlock into <ufs/ufs_extern.h> from each c source.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base
|
#
1.61 |
|
22-Feb-2009 |
ad |
PR kern/26878 FFSv2 + softdep = livelock (no free ram) PR kern/16942 panic with softdep and quotas PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch PR kern/26274 softdep panic: allocdirect_merge: ... PR kern/26374 Long delay before non-root users can write to softdep partitions PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk PR kern/31981 stopping scsi disk can cause panic (softdep) PR kern/32116 kernel panic in softdep (assertion failure) PR kern/32532 softdep_trackbufs deadlock PR kern/37191 softdep: locking against myself PR kern/40474 Kernel panic after remounting raid root with softdep
Retire softdep, pass 2. As discussed and later formally announced on the mailing lists.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base mjf-devfs2-base
|
#
1.60 |
|
31-May-2008 |
ad |
branches: 1.60.6; 1.60.8; 1.60.12; XXX softdep:
If the number of deletes in progress is getting too high, newdirrem() requests the syncer to flush faster, and in some cases will block to prevent deletes accumulating faster than the disk can service them.
The syncer will try to lock vnodes that the remover holds locked, leading to the syncer and remover proceeding in lockstep and making very little overall forward progress.
Put a hook into ufs_rmdir() and ufs_remove() so that the softdep code can pace itself without holding vnode locks if the number of deletes is running out of control.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
|
#
1.59 |
|
16-May-2008 |
hannken |
Make sure all cached buffers with valid, not yet written data have been run through copy-on-write. Call fscow_run() with valid data where possible.
The LP_UFSCOW hack is no longer needed to protect ffs_copyonwrite() against endless recursion.
- Add a flag B_MODIFY to bread(), breada() and breadn(). If set the caller intends to modify the buffer returned.
- Always run copy-on-write on buffers returned from ffs_balloc().
- Add new function ffs_getblk() that gets a buffer, assigns a new blkno, may clear the buffer and runs copy-on-write. Process possible errors from getblk() or fscow_run(). Part of PR kern/38664.
Welcome to 4.99.63
Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base2 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.58 |
|
25-Jan-2008 |
ad |
branches: 1.58.6; 1.58.8; 1.58.10; 1.58.12; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.57 |
|
03-Jan-2008 |
ad |
Use pool_cache.
|
#
1.56 |
|
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 vmlocking2-base1 vmlocking-nbase jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.55 |
|
26-Nov-2007 |
pooka |
branches: 1.55.2; 1.55.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: nick-csl-alignment-base5 matt-armv6-prevmlocking jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.54 |
|
09-Aug-2007 |
hannken |
branches: 1.54.2; 1.54.8; Move the fstrans-aware lock vnops from ufs to ffs. Other ufs file systems do not need them.
Ride on 4.99.28
|
Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.53 |
|
10-Jul-2007 |
hannken |
branches: 1.53.2; 1.53.6; Move `struct dquot' and its supporting functions from quota.h to ufs_quota.c.
- Make quota-internal functions static. - Clean up declarations in quota.h and ufs_extern.h. quota.h now has the description of quota criterions, on-disk structure, user-kernel interface and declaration of init/done functions. All ufs quota related function prototypes go to ufs_extern.h. - New functions ufsquota_init() and ufsquota_free() create or destroy the quota fields of `struct inode'. - chkdq() and chkiq() always update the quota fields of `struct inode' first. - Only ufs_access() explicitely calls getinoquota().
No objections on tech-kern@
|
Revision tags: yamt-idlelwp-base8 thorpej-atomic-base
|
#
1.52 |
|
04-Mar-2007 |
christos |
branches: 1.52.2; 1.52.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.51 |
|
21-Feb-2007 |
thorpej |
Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
|
Revision tags: post-newlock2-merge newlock2-nbase newlock2-base
|
#
1.50 |
|
19-Jan-2007 |
hannken |
branches: 1.50.2; New file system suspension API to replace vn_start_write and vn_finished_write. The suspension helpers are now put into file system specific operations. This means every file system not supporting these helpers cannot be suspended and therefore snapshots are no longer possible.
Implemented for file systems of type ffs.
The new API is enabled on a kernel option NEWVNGATE. This option is not enabled by default in any kernel config.
Presented and discussed on tech-kern with much input from Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.
Welcome to 4.99.9 (new vfs op vfs_suspendctl).
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.49 |
|
14-May-2006 |
elad |
branches: 1.49.8; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.48 |
|
14-Jan-2006 |
yamt |
branches: 1.48.2; 1.48.4; 1.48.6; 1.48.8; 1.48.10; - unify ffs_blkatoff and lfs_blkatoff. - remove ufs_ops::uo_blkatoff. - add directory read-ahead code. (disabled for now.)
|
#
1.47 |
|
11-Dec-2005 |
christos |
branches: 1.47.2; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.46 |
|
23-Sep-2005 |
jmmv |
Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
#
1.45 |
|
23-Jul-2005 |
yamt |
update file timestamps for nfsd loaned-read and mmap. PR/25279. discussed on tech-kern@.
|
#
1.44 |
|
10-Jul-2005 |
thorpej |
- Use ANSI function decls. - Sprinkle some static.
|
#
1.43 |
|
29-May-2005 |
christos |
branches: 1.43.2; - sprinkle const - avoid shadow variables.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.42 |
|
26-Feb-2005 |
perry |
branches: 1.42.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.41 |
|
20-Jun-2004 |
hannken |
branches: 1.41.4; 1.41.6; Use a pool for struct direct instead of kernel stack. Reduces the kernel stack usage by 264 bytes.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.40 |
|
25-May-2004 |
hannken |
Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.39 |
|
27-Apr-2004 |
jrf |
First pass for some caddr_t removal and changes to get rid of it where we no longer use and/or need it
- removed casts from unionfs, deadfs and fdesc (there are more to hunt down still) - changed vfs_quotactl args argumet from caddr_t to void * - changed vfs_quotactl structures/callers to reflect the api change
Compiled fine and ran for about a day. Approved/reviewed by christos@netbsd.org and gimpy@netbsd.org.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.38 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.37 |
|
05-Aug-2003 |
pk |
Pass the inode flags to set as an argument to ufs_dirrewrite(). Use it to restore the behaviour of not updating the modified time of a directory that moves to a new parent.
|
#
1.36 |
|
29-Jun-2003 |
fvdl |
branches: 1.36.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.35 |
|
29-Jun-2003 |
thorpej |
Undo part of the ktrace/lwp changes. In particular: * Remove the "lwp *" argument that was added to vget(). Turns out that nothing actually used it! * Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(), and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted above, didn't use it). * Remove all of the "lwp *" arguments to internal functions that were added just to appease the above.
|
#
1.34 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.33 |
|
18-May-2003 |
yamt |
make is_sequential a callback in order to achieve better lfs write clustering.
since lfs always rewrite blocks into the new segment, current on-disk place of the block doesn't affect to write clustering.
ok'ed by Konrad Schroder.
|
#
1.32 |
|
02-Apr-2003 |
fvdl |
Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
#
1.31 |
|
17-Feb-2003 |
perseant |
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.30 |
|
24-Jan-2003 |
fvdl |
Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.29 |
|
01-Dec-2002 |
matt |
Add multiple inclusion protection for headers. Fix mismatched variable declarations (missing const's) as needed.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base eeh-devprop-base newlock-base ifpoll-base kqueue-base
|
#
1.28 |
|
18-Dec-2001 |
fvdl |
Bring over fixes from FreeBSD that weren't incorporated yet, mainly from Kirk McKusick. They implement taking pending block/inode frees into account for the sake of correct statfs() numbers, and adding a new softdep type (newdirblk) to correctly handle newly allocated directory blocks.
Minor additional changes: 1) swap the newly introduced fs_pendinginodes and fs_pendingblock fields in ffs_sb_swap, and 2) declare lkt_held in the debug version of the softdep lock structure volatile, as it can be modified from interrupt context #ifdef DEBUG.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf
|
#
1.27 |
|
15-Sep-2001 |
chs |
a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
|
Revision tags: pre-chs-ubcperf
|
#
1.26 |
|
15-Sep-2001 |
chs |
add a new VFS op, vfs_reinit, which is called when desiredvnodes is adjusted via sysctl. file systems that have hash tables which are sized based on the value of this variable now resize those hash tables using the new value. the max number of FFS softdeps is also recalculated.
convert various file systems to use the <sys/queue.h> macros for their hash tables.
|
Revision tags: thorpej-devvp-base perseant-lfsv2-base
|
#
1.25 |
|
28-May-2001 |
chs |
branches: 1.25.4; 1.25.6; add a genfs_mmap() and change all of the disk-based filesystems to implement VOP_MMAP() with the genfs version, in preparation for actually using this VOP.
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.24 |
|
27-Nov-2000 |
chs |
branches: 1.24.2; Initial integration of the Unified Buffer Cache project.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.23 |
|
16-Mar-2000 |
jdolecek |
Change ufs_init() to keep global count of how many times it was called. Resources are initialized still just once (on first call).
Add ufs_done(), which takes care of freeing all resources allocated in ufs_init(). The resources are freed only when last user of the code exits.
|
#
1.22 |
|
14-Feb-2000 |
fvdl |
Fixes to the softdep code from Ethan Solomita <ethan@geocast.com>. * Fix buffer ordering when it has dependencies. * Alleviate memory problems. * Deal with some recursive vnode locks (sigh). * Fix other bugs.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.21 |
|
15-Nov-1999 |
fvdl |
Add Kirk McKusick's soft updates code to the trunk. Not enabled by default, as the copyright on the main file (ffs_softdep.c) is such that is has been put into gnusrc. options SOFTDEP will pull this in. This code also contains the trickle syncer.
Bump version number to 1.4O
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.20 |
|
03-Aug-1999 |
wrstuden |
branches: 1.20.2; 1.20.4; 1.20.8; Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl call with F_FSCTL set and F_SETFL calls generate calls to a new fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0 for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems use genfs_fcntl().
Reviewed by: thorpej Tested by: wrstuden
|
#
1.19 |
|
03-Aug-1999 |
drochner |
clean up inclusion of "opt_ffs.h" and use of "FFS_EI" a bit
|
Revision tags: chs-ubc2-base
|
#
1.18 |
|
08-Jul-1999 |
wrstuden |
Modify file systems to deal with struct lock in struct vnode. All leaf fs's other than nfs use genfs_lock() for locking.
Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.17 |
|
26-Feb-1999 |
wrstuden |
branches: 1.17.4; Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now only handles the file handle to vnode conversion, and a new call, vfs_checkexp(), performs the export verification.
|
Revision tags: kenh-if-detach-base
|
#
1.16 |
|
12-Nov-1998 |
thorpej |
defopt FFS_EI
|
Revision tags: chs-ubc-base
|
#
1.15 |
|
10-Aug-1998 |
matthias |
create miscfs/genfs/genfs_vnops.c:genfs_enoioctl and make all the other filesystems use it instead of a private version.
|
Revision tags: eeh-paddr_t-base
|
#
1.14 |
|
25-Jun-1998 |
thorpej |
Use genfs_lease_check()
|
#
1.13 |
|
24-Jun-1998 |
sommerfe |
Always include fifos; "not an option any more".
|
#
1.12 |
|
22-Jun-1998 |
sommerfe |
defopt for options FIFO
|
#
1.11 |
|
13-Jun-1998 |
kleink |
KNF, mostly of FFS_EI changes.
|
#
1.10 |
|
18-Mar-1998 |
bouyer |
Add support for reading/writing FFS in non-native byte order, conditioned to "options FFS_EI". The superblock and inodes (without blk addr) are byteswapped at disk read/write time, other metadatas are byteswapped when used (as they are acceeded directly in the buffer cache). This required the addition of a "um_flags" field to struct ufsmount. ffs_bswap.c contains superblock and inode byteswap routines also used by userland utilities.
|
#
1.9 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.8 |
|
11-Apr-1997 |
kleink |
Implement a POSIX compliant genfs VOP_SEEK() and use it in the appropriate places; by Chris G. Demetriou and myself.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.7 |
|
07-Sep-1996 |
mycroft |
Implement poll(2).
|
#
1.6 |
|
01-Sep-1996 |
mycroft |
Add a set of generic file system operations that most file systems use. Also, fix some time stamp bogosities.
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.5 |
|
09-Feb-1996 |
christos |
ufs prototype changes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.4 |
|
14-Dec-1994 |
mycroft |
Sync with CSRG.
|
#
1.3 |
|
13-Dec-1994 |
mycroft |
Turn lease_check() into a vnode op, per CSRG.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.2 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.1 |
|
08-Jun-1994 |
mycroft |
branches: 1.1.1; Update to 4.4-Lite fs code, with local changes.
|
#
1.87 |
|
18-Jul-2021 |
dholland |
Abolish all the silly indirection macros for initializing vnode ops tables.
These are things of the form #define foofs_op genfs_op, or #define foofs_op genfs_eopnotsupp, or similar. They serve no purpose besides obfuscation, and have gotten cutpasted all over everywhere.
|
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.86 |
|
16-May-2020 |
christos |
Add ACL support for FFS. From FreeBSD.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.85 |
|
18-Apr-2020 |
christos |
Extended attribute support for ffsv2, from FreeBSD.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1
|
#
1.84 |
|
17-Jan-2020 |
ad |
branches: 1.84.4; VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 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 prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
|
#
1.83 |
|
28-Oct-2016 |
jdolecek |
branches: 1.83.16; 1.83.22; reorganize ffs_truncate()/ffs_indirtrunc() to be able to partially succeed; change wapbl_register_deallocation() to return EAGAIN rather than panic when code hits the limit
callers changed to either loop calling ffs_truncate() using new utility ufs_truncate_retry() if their semantics requires it, or just ignore the failure; remove ufs_wapbl_truncate()
this fixes possible user-triggerable panic during truncate, and resolves WAPBL performance issue with truncates of large files
PR kern/47146 and kern/49175
|
Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422
|
#
1.82 |
|
12-Apr-2016 |
christos |
branches: 1.82.2; Remove gcc hack, it does not help. Add more const.
|
#
1.81 |
|
12-Apr-2016 |
christos |
Provide reason to be printed in panic string.
|
#
1.80 |
|
11-Apr-2016 |
christos |
misc cleanups, no functional change
|
Revision tags: nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.79 |
|
27-Mar-2015 |
riastradh |
Disentangle buffer-cached I/O from page-cached I/O in UFS.
Page-cached I/O is used for regular files, and is initiated by VFS users such as userland and NFS.
Buffer-cached I/O is used for directories and symlinks, and is issued only internally by UFS.
New UFS routine ufs_bufio replaces vn_rdwr for internal use. ufs_bufio is implemented by new UFS operations uo_bufrd/uo_bufwr, which sit in ufs_readwrite.c alongside the VOP_READ/VOP_WRITE implementations.
I preserved the code as much as possible and will leave further simplification for future commits. I kept the ulfs_readwrite.c copypasta close to ufs_readwrite.c in case we ever want to merge them back; likewise ext2fs_readwrite.c.
No externally visible semantic change. All atf fs tests still pass.
|
#
1.78 |
|
17-Mar-2015 |
hannken |
Change ffs to use vcache_new: - Change ffs_valloc to return an inode number. - Remove now obsolete UFS operations UFS_VALLOC and UFS_VFREE. - Make ufs_makeinode private to ufs_vnops.c and pass vattr instead of mode.
|
Revision tags: nick-nhusb-base
|
#
1.77 |
|
29-Oct-2014 |
christos |
branches: 1.77.2; simplify and correct.
|
#
1.76 |
|
21-Oct-2014 |
slp |
Move and unify indirect block truncate algorithm into a separate function.
Reviewed by joerg.
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.75 |
|
25-May-2014 |
hannken |
branches: 1.75.2; Remove ufs_checkpath() and ufs_readdotdot(). These are relics from the pre-genfs_rename era.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.74 |
|
08-May-2014 |
hannken |
Add a global vnode cache:
- vcache_get() retrieves a referenced and initialised vnode / fs node pair. - vcache_remove() removes a vnode / fs node pair from the cache.
On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to initialise a vnode / fs node pair. This call is guaranteed exclusive, no other thread will try to load this vnode / fs node pair.
Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.
Remove now unused ufs/ufs_ihash
Discussed on tech-kern.
Welcome to 6.99.41
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.73 |
|
16-Jun-2013 |
hannken |
branches: 1.73.2; 1.73.6; Add an UFS_SNAPGONE() ufs op replacing the calls to ffs_snapgone() in ufs_lookup.c.
Ok: David Holland <dholland@netbsd.org>
Welcome to 6.99.22
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5
|
#
1.72 |
|
09-May-2012 |
riastradh |
branches: 1.72.2; Adapt ffs, lfs, and ext2fs to use genfs_rename.
ok dholland, rmind
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.71 |
|
01-Feb-2012 |
dholland |
Change the syscall API for quotas over to the new non-proplib one.
- struct vfs_quotactl_args -> struct quotactl_args - add sys/stdint.h to sys/quotactl.h for clean userland build - install sys/quotactl.h in /usr/include - update set lists for same - add new marshalling code in libquota - add new unmarshalling code in vfs_syscalls.c - discard proplib interpreter code in vfs_quotactl.c - add dispatching code for the 14 quotactl ops in vfs_quotactl.c - mark the proplib quotactl syscall obsolete - add a new syscall number for the new quotactl syscall - change the name of the syscall to __quotactl() - remove the decl of the old quotactl from quota/quotaprop.h - add a decl of the new quotactl to sys/quotactl.h - update the libc build - update ktruss - remove proplib marshalling code from libquota - update copy of syscall table in gdb ppc sources - hack rumphijack to accomodate new quotactl name (as I recall, pooka wanted such a name change to simplify something, but I don't really see what/how)
This change appears to require a kernel version bump for rumpish reasons.
|
#
1.70 |
|
29-Jan-2012 |
dholland |
Remove the extra op argument to VFS_QUOTACTL() - the op is now stored purely in the args structure.
This change requires a kernel version bump.
|
#
1.69 |
|
29-Jan-2012 |
dholland |
Introduce struct vfs_quotactl_args. Use it.
This change uglifies vfs_quotactl some in order to make room for moving operation-specific but FS-independent logic out of ufs_quota.c.
Note: this change requires a kernel version bump.
|
#
1.68 |
|
29-Jan-2012 |
dholland |
Move the proplib-based quota command dispatching (that is, the code that knows the magic string names for the allowed actions) out of UFS-specific code and to fs-independent code.
This introduces QUOTACTL_* operation codes and changes the signature of VFS_QUOTACTL() again for compile safety.
Note: this change requires a kernel version bump.
|
#
1.67 |
|
29-Jan-2012 |
dholland |
Move the code for iterating over the multiple RPC calls in a quota proplib XML packet to vfs_quotactl.c out of sys/ufs/ufs.
Add a dummy extra arg to VFS_QUOTACTL for compile safety.
Note: this change requires a kernel version bump.
|
Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.66 |
|
17-Jul-2011 |
dholland |
branches: 1.66.2; 1.66.6; Provide correct locking for ufs_wapbl_rename. Note that this does not fix the non-wapbl rename; that will be coming soon. This patch also leaves a lot of the older locking-related code around in #if 0 blocks, and there's a lot of leftover redundant logic. All that will be going away later.
Relates to at least these PRs:
PR kern/24887 PR kern/41417 PR kern/42093 PR kern/43626
and possibly others.
|
#
1.65 |
|
12-Jul-2011 |
dholland |
Pass the ufs_lookup_results pointer around instead of fetching it from the inode in the guts of ufs. Now, in VOPs where i_crap is used it is used (directly) only immediately on entry to the VOP call and then passed around by reference.
Except for rename, which needs explicit sorting out. The code in ufs_wapbl_rename is unchanged in behavior but I'm increasingly inclined to think it's wrong.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.64 |
|
04-Apr-2011 |
ahoka |
add "struct ufid;" so we can include it without ufs/inode.h
|
#
1.63 |
|
06-Mar-2011 |
bouyer |
merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 jym-xensuspend-nbase
|
#
1.62 |
|
13-Sep-2009 |
tsutsui |
branches: 1.62.4; 1.62.6; 1.62.8; Move declaration of ufs_hashlock into <ufs/ufs_extern.h> from each c source.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base
|
#
1.61 |
|
22-Feb-2009 |
ad |
PR kern/26878 FFSv2 + softdep = livelock (no free ram) PR kern/16942 panic with softdep and quotas PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch PR kern/26274 softdep panic: allocdirect_merge: ... PR kern/26374 Long delay before non-root users can write to softdep partitions PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk PR kern/31981 stopping scsi disk can cause panic (softdep) PR kern/32116 kernel panic in softdep (assertion failure) PR kern/32532 softdep_trackbufs deadlock PR kern/37191 softdep: locking against myself PR kern/40474 Kernel panic after remounting raid root with softdep
Retire softdep, pass 2. As discussed and later formally announced on the mailing lists.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base mjf-devfs2-base
|
#
1.60 |
|
31-May-2008 |
ad |
branches: 1.60.6; 1.60.8; 1.60.12; XXX softdep:
If the number of deletes in progress is getting too high, newdirrem() requests the syncer to flush faster, and in some cases will block to prevent deletes accumulating faster than the disk can service them.
The syncer will try to lock vnodes that the remover holds locked, leading to the syncer and remover proceeding in lockstep and making very little overall forward progress.
Put a hook into ufs_rmdir() and ufs_remove() so that the softdep code can pace itself without holding vnode locks if the number of deletes is running out of control.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
|
#
1.59 |
|
16-May-2008 |
hannken |
Make sure all cached buffers with valid, not yet written data have been run through copy-on-write. Call fscow_run() with valid data where possible.
The LP_UFSCOW hack is no longer needed to protect ffs_copyonwrite() against endless recursion.
- Add a flag B_MODIFY to bread(), breada() and breadn(). If set the caller intends to modify the buffer returned.
- Always run copy-on-write on buffers returned from ffs_balloc().
- Add new function ffs_getblk() that gets a buffer, assigns a new blkno, may clear the buffer and runs copy-on-write. Process possible errors from getblk() or fscow_run(). Part of PR kern/38664.
Welcome to 4.99.63
Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base2 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.58 |
|
25-Jan-2008 |
ad |
branches: 1.58.6; 1.58.8; 1.58.10; 1.58.12; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.57 |
|
03-Jan-2008 |
ad |
Use pool_cache.
|
#
1.56 |
|
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 vmlocking2-base1 vmlocking-nbase jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.55 |
|
26-Nov-2007 |
pooka |
branches: 1.55.2; 1.55.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: nick-csl-alignment-base5 matt-armv6-prevmlocking jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.54 |
|
09-Aug-2007 |
hannken |
branches: 1.54.2; 1.54.8; Move the fstrans-aware lock vnops from ufs to ffs. Other ufs file systems do not need them.
Ride on 4.99.28
|
Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.53 |
|
10-Jul-2007 |
hannken |
branches: 1.53.2; 1.53.6; Move `struct dquot' and its supporting functions from quota.h to ufs_quota.c.
- Make quota-internal functions static. - Clean up declarations in quota.h and ufs_extern.h. quota.h now has the description of quota criterions, on-disk structure, user-kernel interface and declaration of init/done functions. All ufs quota related function prototypes go to ufs_extern.h. - New functions ufsquota_init() and ufsquota_free() create or destroy the quota fields of `struct inode'. - chkdq() and chkiq() always update the quota fields of `struct inode' first. - Only ufs_access() explicitely calls getinoquota().
No objections on tech-kern@
|
Revision tags: yamt-idlelwp-base8 thorpej-atomic-base
|
#
1.52 |
|
04-Mar-2007 |
christos |
branches: 1.52.2; 1.52.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.51 |
|
21-Feb-2007 |
thorpej |
Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
|
Revision tags: post-newlock2-merge newlock2-nbase newlock2-base
|
#
1.50 |
|
19-Jan-2007 |
hannken |
branches: 1.50.2; New file system suspension API to replace vn_start_write and vn_finished_write. The suspension helpers are now put into file system specific operations. This means every file system not supporting these helpers cannot be suspended and therefore snapshots are no longer possible.
Implemented for file systems of type ffs.
The new API is enabled on a kernel option NEWVNGATE. This option is not enabled by default in any kernel config.
Presented and discussed on tech-kern with much input from Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.
Welcome to 4.99.9 (new vfs op vfs_suspendctl).
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.49 |
|
14-May-2006 |
elad |
branches: 1.49.8; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.48 |
|
14-Jan-2006 |
yamt |
branches: 1.48.2; 1.48.4; 1.48.6; 1.48.8; 1.48.10; - unify ffs_blkatoff and lfs_blkatoff. - remove ufs_ops::uo_blkatoff. - add directory read-ahead code. (disabled for now.)
|
#
1.47 |
|
11-Dec-2005 |
christos |
branches: 1.47.2; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.46 |
|
23-Sep-2005 |
jmmv |
Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
#
1.45 |
|
23-Jul-2005 |
yamt |
update file timestamps for nfsd loaned-read and mmap. PR/25279. discussed on tech-kern@.
|
#
1.44 |
|
10-Jul-2005 |
thorpej |
- Use ANSI function decls. - Sprinkle some static.
|
#
1.43 |
|
29-May-2005 |
christos |
branches: 1.43.2; - sprinkle const - avoid shadow variables.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.42 |
|
26-Feb-2005 |
perry |
branches: 1.42.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.41 |
|
20-Jun-2004 |
hannken |
branches: 1.41.4; 1.41.6; Use a pool for struct direct instead of kernel stack. Reduces the kernel stack usage by 264 bytes.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.40 |
|
25-May-2004 |
hannken |
Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.39 |
|
27-Apr-2004 |
jrf |
First pass for some caddr_t removal and changes to get rid of it where we no longer use and/or need it
- removed casts from unionfs, deadfs and fdesc (there are more to hunt down still) - changed vfs_quotactl args argumet from caddr_t to void * - changed vfs_quotactl structures/callers to reflect the api change
Compiled fine and ran for about a day. Approved/reviewed by christos@netbsd.org and gimpy@netbsd.org.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.38 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.37 |
|
05-Aug-2003 |
pk |
Pass the inode flags to set as an argument to ufs_dirrewrite(). Use it to restore the behaviour of not updating the modified time of a directory that moves to a new parent.
|
#
1.36 |
|
29-Jun-2003 |
fvdl |
branches: 1.36.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.35 |
|
29-Jun-2003 |
thorpej |
Undo part of the ktrace/lwp changes. In particular: * Remove the "lwp *" argument that was added to vget(). Turns out that nothing actually used it! * Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(), and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted above, didn't use it). * Remove all of the "lwp *" arguments to internal functions that were added just to appease the above.
|
#
1.34 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.33 |
|
18-May-2003 |
yamt |
make is_sequential a callback in order to achieve better lfs write clustering.
since lfs always rewrite blocks into the new segment, current on-disk place of the block doesn't affect to write clustering.
ok'ed by Konrad Schroder.
|
#
1.32 |
|
02-Apr-2003 |
fvdl |
Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
#
1.31 |
|
17-Feb-2003 |
perseant |
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.30 |
|
24-Jan-2003 |
fvdl |
Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.29 |
|
01-Dec-2002 |
matt |
Add multiple inclusion protection for headers. Fix mismatched variable declarations (missing const's) as needed.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base eeh-devprop-base newlock-base ifpoll-base kqueue-base
|
#
1.28 |
|
18-Dec-2001 |
fvdl |
Bring over fixes from FreeBSD that weren't incorporated yet, mainly from Kirk McKusick. They implement taking pending block/inode frees into account for the sake of correct statfs() numbers, and adding a new softdep type (newdirblk) to correctly handle newly allocated directory blocks.
Minor additional changes: 1) swap the newly introduced fs_pendinginodes and fs_pendingblock fields in ffs_sb_swap, and 2) declare lkt_held in the debug version of the softdep lock structure volatile, as it can be modified from interrupt context #ifdef DEBUG.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf
|
#
1.27 |
|
15-Sep-2001 |
chs |
a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
|
Revision tags: pre-chs-ubcperf
|
#
1.26 |
|
15-Sep-2001 |
chs |
add a new VFS op, vfs_reinit, which is called when desiredvnodes is adjusted via sysctl. file systems that have hash tables which are sized based on the value of this variable now resize those hash tables using the new value. the max number of FFS softdeps is also recalculated.
convert various file systems to use the <sys/queue.h> macros for their hash tables.
|
Revision tags: thorpej-devvp-base perseant-lfsv2-base
|
#
1.25 |
|
28-May-2001 |
chs |
branches: 1.25.4; 1.25.6; add a genfs_mmap() and change all of the disk-based filesystems to implement VOP_MMAP() with the genfs version, in preparation for actually using this VOP.
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.24 |
|
27-Nov-2000 |
chs |
branches: 1.24.2; Initial integration of the Unified Buffer Cache project.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.23 |
|
16-Mar-2000 |
jdolecek |
Change ufs_init() to keep global count of how many times it was called. Resources are initialized still just once (on first call).
Add ufs_done(), which takes care of freeing all resources allocated in ufs_init(). The resources are freed only when last user of the code exits.
|
#
1.22 |
|
14-Feb-2000 |
fvdl |
Fixes to the softdep code from Ethan Solomita <ethan@geocast.com>. * Fix buffer ordering when it has dependencies. * Alleviate memory problems. * Deal with some recursive vnode locks (sigh). * Fix other bugs.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.21 |
|
15-Nov-1999 |
fvdl |
Add Kirk McKusick's soft updates code to the trunk. Not enabled by default, as the copyright on the main file (ffs_softdep.c) is such that is has been put into gnusrc. options SOFTDEP will pull this in. This code also contains the trickle syncer.
Bump version number to 1.4O
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.20 |
|
03-Aug-1999 |
wrstuden |
branches: 1.20.2; 1.20.4; 1.20.8; Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl call with F_FSCTL set and F_SETFL calls generate calls to a new fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0 for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems use genfs_fcntl().
Reviewed by: thorpej Tested by: wrstuden
|
#
1.19 |
|
03-Aug-1999 |
drochner |
clean up inclusion of "opt_ffs.h" and use of "FFS_EI" a bit
|
Revision tags: chs-ubc2-base
|
#
1.18 |
|
08-Jul-1999 |
wrstuden |
Modify file systems to deal with struct lock in struct vnode. All leaf fs's other than nfs use genfs_lock() for locking.
Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.17 |
|
26-Feb-1999 |
wrstuden |
branches: 1.17.4; Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now only handles the file handle to vnode conversion, and a new call, vfs_checkexp(), performs the export verification.
|
Revision tags: kenh-if-detach-base
|
#
1.16 |
|
12-Nov-1998 |
thorpej |
defopt FFS_EI
|
Revision tags: chs-ubc-base
|
#
1.15 |
|
10-Aug-1998 |
matthias |
create miscfs/genfs/genfs_vnops.c:genfs_enoioctl and make all the other filesystems use it instead of a private version.
|
Revision tags: eeh-paddr_t-base
|
#
1.14 |
|
25-Jun-1998 |
thorpej |
Use genfs_lease_check()
|
#
1.13 |
|
24-Jun-1998 |
sommerfe |
Always include fifos; "not an option any more".
|
#
1.12 |
|
22-Jun-1998 |
sommerfe |
defopt for options FIFO
|
#
1.11 |
|
13-Jun-1998 |
kleink |
KNF, mostly of FFS_EI changes.
|
#
1.10 |
|
18-Mar-1998 |
bouyer |
Add support for reading/writing FFS in non-native byte order, conditioned to "options FFS_EI". The superblock and inodes (without blk addr) are byteswapped at disk read/write time, other metadatas are byteswapped when used (as they are acceeded directly in the buffer cache). This required the addition of a "um_flags" field to struct ufsmount. ffs_bswap.c contains superblock and inode byteswap routines also used by userland utilities.
|
#
1.9 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.8 |
|
11-Apr-1997 |
kleink |
Implement a POSIX compliant genfs VOP_SEEK() and use it in the appropriate places; by Chris G. Demetriou and myself.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.7 |
|
07-Sep-1996 |
mycroft |
Implement poll(2).
|
#
1.6 |
|
01-Sep-1996 |
mycroft |
Add a set of generic file system operations that most file systems use. Also, fix some time stamp bogosities.
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.5 |
|
09-Feb-1996 |
christos |
ufs prototype changes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.4 |
|
14-Dec-1994 |
mycroft |
Sync with CSRG.
|
#
1.3 |
|
13-Dec-1994 |
mycroft |
Turn lease_check() into a vnode op, per CSRG.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.2 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.1 |
|
08-Jun-1994 |
mycroft |
branches: 1.1.1; Update to 4.4-Lite fs code, with local changes.
|
#
1.86 |
|
16-May-2020 |
christos |
Add ACL support for FFS. From FreeBSD.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.85 |
|
18-Apr-2020 |
christos |
Extended attribute support for ffsv2, from FreeBSD.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1
|
#
1.84 |
|
17-Jan-2020 |
ad |
branches: 1.84.4; VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
Revision tags: netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 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 prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
|
#
1.83 |
|
28-Oct-2016 |
jdolecek |
branches: 1.83.16; 1.83.22; reorganize ffs_truncate()/ffs_indirtrunc() to be able to partially succeed; change wapbl_register_deallocation() to return EAGAIN rather than panic when code hits the limit
callers changed to either loop calling ffs_truncate() using new utility ufs_truncate_retry() if their semantics requires it, or just ignore the failure; remove ufs_wapbl_truncate()
this fixes possible user-triggerable panic during truncate, and resolves WAPBL performance issue with truncates of large files
PR kern/47146 and kern/49175
|
Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422
|
#
1.82 |
|
12-Apr-2016 |
christos |
branches: 1.82.2; Remove gcc hack, it does not help. Add more const.
|
#
1.81 |
|
12-Apr-2016 |
christos |
Provide reason to be printed in panic string.
|
#
1.80 |
|
11-Apr-2016 |
christos |
misc cleanups, no functional change
|
Revision tags: nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.79 |
|
27-Mar-2015 |
riastradh |
Disentangle buffer-cached I/O from page-cached I/O in UFS.
Page-cached I/O is used for regular files, and is initiated by VFS users such as userland and NFS.
Buffer-cached I/O is used for directories and symlinks, and is issued only internally by UFS.
New UFS routine ufs_bufio replaces vn_rdwr for internal use. ufs_bufio is implemented by new UFS operations uo_bufrd/uo_bufwr, which sit in ufs_readwrite.c alongside the VOP_READ/VOP_WRITE implementations.
I preserved the code as much as possible and will leave further simplification for future commits. I kept the ulfs_readwrite.c copypasta close to ufs_readwrite.c in case we ever want to merge them back; likewise ext2fs_readwrite.c.
No externally visible semantic change. All atf fs tests still pass.
|
#
1.78 |
|
17-Mar-2015 |
hannken |
Change ffs to use vcache_new: - Change ffs_valloc to return an inode number. - Remove now obsolete UFS operations UFS_VALLOC and UFS_VFREE. - Make ufs_makeinode private to ufs_vnops.c and pass vattr instead of mode.
|
Revision tags: nick-nhusb-base
|
#
1.77 |
|
29-Oct-2014 |
christos |
branches: 1.77.2; simplify and correct.
|
#
1.76 |
|
21-Oct-2014 |
slp |
Move and unify indirect block truncate algorithm into a separate function.
Reviewed by joerg.
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.75 |
|
25-May-2014 |
hannken |
branches: 1.75.2; Remove ufs_checkpath() and ufs_readdotdot(). These are relics from the pre-genfs_rename era.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.74 |
|
08-May-2014 |
hannken |
Add a global vnode cache:
- vcache_get() retrieves a referenced and initialised vnode / fs node pair. - vcache_remove() removes a vnode / fs node pair from the cache.
On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to initialise a vnode / fs node pair. This call is guaranteed exclusive, no other thread will try to load this vnode / fs node pair.
Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.
Remove now unused ufs/ufs_ihash
Discussed on tech-kern.
Welcome to 6.99.41
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.73 |
|
16-Jun-2013 |
hannken |
branches: 1.73.2; 1.73.6; Add an UFS_SNAPGONE() ufs op replacing the calls to ffs_snapgone() in ufs_lookup.c.
Ok: David Holland <dholland@netbsd.org>
Welcome to 6.99.22
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5
|
#
1.72 |
|
09-May-2012 |
riastradh |
branches: 1.72.2; Adapt ffs, lfs, and ext2fs to use genfs_rename.
ok dholland, rmind
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.71 |
|
01-Feb-2012 |
dholland |
Change the syscall API for quotas over to the new non-proplib one.
- struct vfs_quotactl_args -> struct quotactl_args - add sys/stdint.h to sys/quotactl.h for clean userland build - install sys/quotactl.h in /usr/include - update set lists for same - add new marshalling code in libquota - add new unmarshalling code in vfs_syscalls.c - discard proplib interpreter code in vfs_quotactl.c - add dispatching code for the 14 quotactl ops in vfs_quotactl.c - mark the proplib quotactl syscall obsolete - add a new syscall number for the new quotactl syscall - change the name of the syscall to __quotactl() - remove the decl of the old quotactl from quota/quotaprop.h - add a decl of the new quotactl to sys/quotactl.h - update the libc build - update ktruss - remove proplib marshalling code from libquota - update copy of syscall table in gdb ppc sources - hack rumphijack to accomodate new quotactl name (as I recall, pooka wanted such a name change to simplify something, but I don't really see what/how)
This change appears to require a kernel version bump for rumpish reasons.
|
#
1.70 |
|
29-Jan-2012 |
dholland |
Remove the extra op argument to VFS_QUOTACTL() - the op is now stored purely in the args structure.
This change requires a kernel version bump.
|
#
1.69 |
|
29-Jan-2012 |
dholland |
Introduce struct vfs_quotactl_args. Use it.
This change uglifies vfs_quotactl some in order to make room for moving operation-specific but FS-independent logic out of ufs_quota.c.
Note: this change requires a kernel version bump.
|
#
1.68 |
|
29-Jan-2012 |
dholland |
Move the proplib-based quota command dispatching (that is, the code that knows the magic string names for the allowed actions) out of UFS-specific code and to fs-independent code.
This introduces QUOTACTL_* operation codes and changes the signature of VFS_QUOTACTL() again for compile safety.
Note: this change requires a kernel version bump.
|
#
1.67 |
|
29-Jan-2012 |
dholland |
Move the code for iterating over the multiple RPC calls in a quota proplib XML packet to vfs_quotactl.c out of sys/ufs/ufs.
Add a dummy extra arg to VFS_QUOTACTL for compile safety.
Note: this change requires a kernel version bump.
|
Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.66 |
|
17-Jul-2011 |
dholland |
branches: 1.66.2; 1.66.6; Provide correct locking for ufs_wapbl_rename. Note that this does not fix the non-wapbl rename; that will be coming soon. This patch also leaves a lot of the older locking-related code around in #if 0 blocks, and there's a lot of leftover redundant logic. All that will be going away later.
Relates to at least these PRs:
PR kern/24887 PR kern/41417 PR kern/42093 PR kern/43626
and possibly others.
|
#
1.65 |
|
12-Jul-2011 |
dholland |
Pass the ufs_lookup_results pointer around instead of fetching it from the inode in the guts of ufs. Now, in VOPs where i_crap is used it is used (directly) only immediately on entry to the VOP call and then passed around by reference.
Except for rename, which needs explicit sorting out. The code in ufs_wapbl_rename is unchanged in behavior but I'm increasingly inclined to think it's wrong.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.64 |
|
04-Apr-2011 |
ahoka |
add "struct ufid;" so we can include it without ufs/inode.h
|
#
1.63 |
|
06-Mar-2011 |
bouyer |
merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 jym-xensuspend-nbase
|
#
1.62 |
|
13-Sep-2009 |
tsutsui |
branches: 1.62.4; 1.62.6; 1.62.8; Move declaration of ufs_hashlock into <ufs/ufs_extern.h> from each c source.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base
|
#
1.61 |
|
22-Feb-2009 |
ad |
PR kern/26878 FFSv2 + softdep = livelock (no free ram) PR kern/16942 panic with softdep and quotas PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch PR kern/26274 softdep panic: allocdirect_merge: ... PR kern/26374 Long delay before non-root users can write to softdep partitions PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk PR kern/31981 stopping scsi disk can cause panic (softdep) PR kern/32116 kernel panic in softdep (assertion failure) PR kern/32532 softdep_trackbufs deadlock PR kern/37191 softdep: locking against myself PR kern/40474 Kernel panic after remounting raid root with softdep
Retire softdep, pass 2. As discussed and later formally announced on the mailing lists.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base mjf-devfs2-base
|
#
1.60 |
|
31-May-2008 |
ad |
branches: 1.60.6; 1.60.8; 1.60.12; XXX softdep:
If the number of deletes in progress is getting too high, newdirrem() requests the syncer to flush faster, and in some cases will block to prevent deletes accumulating faster than the disk can service them.
The syncer will try to lock vnodes that the remover holds locked, leading to the syncer and remover proceeding in lockstep and making very little overall forward progress.
Put a hook into ufs_rmdir() and ufs_remove() so that the softdep code can pace itself without holding vnode locks if the number of deletes is running out of control.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
|
#
1.59 |
|
16-May-2008 |
hannken |
Make sure all cached buffers with valid, not yet written data have been run through copy-on-write. Call fscow_run() with valid data where possible.
The LP_UFSCOW hack is no longer needed to protect ffs_copyonwrite() against endless recursion.
- Add a flag B_MODIFY to bread(), breada() and breadn(). If set the caller intends to modify the buffer returned.
- Always run copy-on-write on buffers returned from ffs_balloc().
- Add new function ffs_getblk() that gets a buffer, assigns a new blkno, may clear the buffer and runs copy-on-write. Process possible errors from getblk() or fscow_run(). Part of PR kern/38664.
Welcome to 4.99.63
Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base2 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.58 |
|
25-Jan-2008 |
ad |
branches: 1.58.6; 1.58.8; 1.58.10; 1.58.12; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.57 |
|
03-Jan-2008 |
ad |
Use pool_cache.
|
#
1.56 |
|
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 vmlocking2-base1 vmlocking-nbase jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.55 |
|
26-Nov-2007 |
pooka |
branches: 1.55.2; 1.55.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: nick-csl-alignment-base5 matt-armv6-prevmlocking jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.54 |
|
09-Aug-2007 |
hannken |
branches: 1.54.2; 1.54.8; Move the fstrans-aware lock vnops from ufs to ffs. Other ufs file systems do not need them.
Ride on 4.99.28
|
Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.53 |
|
10-Jul-2007 |
hannken |
branches: 1.53.2; 1.53.6; Move `struct dquot' and its supporting functions from quota.h to ufs_quota.c.
- Make quota-internal functions static. - Clean up declarations in quota.h and ufs_extern.h. quota.h now has the description of quota criterions, on-disk structure, user-kernel interface and declaration of init/done functions. All ufs quota related function prototypes go to ufs_extern.h. - New functions ufsquota_init() and ufsquota_free() create or destroy the quota fields of `struct inode'. - chkdq() and chkiq() always update the quota fields of `struct inode' first. - Only ufs_access() explicitely calls getinoquota().
No objections on tech-kern@
|
Revision tags: yamt-idlelwp-base8 thorpej-atomic-base
|
#
1.52 |
|
04-Mar-2007 |
christos |
branches: 1.52.2; 1.52.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.51 |
|
21-Feb-2007 |
thorpej |
Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
|
Revision tags: post-newlock2-merge newlock2-nbase newlock2-base
|
#
1.50 |
|
19-Jan-2007 |
hannken |
branches: 1.50.2; New file system suspension API to replace vn_start_write and vn_finished_write. The suspension helpers are now put into file system specific operations. This means every file system not supporting these helpers cannot be suspended and therefore snapshots are no longer possible.
Implemented for file systems of type ffs.
The new API is enabled on a kernel option NEWVNGATE. This option is not enabled by default in any kernel config.
Presented and discussed on tech-kern with much input from Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.
Welcome to 4.99.9 (new vfs op vfs_suspendctl).
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.49 |
|
14-May-2006 |
elad |
branches: 1.49.8; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.48 |
|
14-Jan-2006 |
yamt |
branches: 1.48.2; 1.48.4; 1.48.6; 1.48.8; 1.48.10; - unify ffs_blkatoff and lfs_blkatoff. - remove ufs_ops::uo_blkatoff. - add directory read-ahead code. (disabled for now.)
|
#
1.47 |
|
11-Dec-2005 |
christos |
branches: 1.47.2; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.46 |
|
23-Sep-2005 |
jmmv |
Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
#
1.45 |
|
23-Jul-2005 |
yamt |
update file timestamps for nfsd loaned-read and mmap. PR/25279. discussed on tech-kern@.
|
#
1.44 |
|
10-Jul-2005 |
thorpej |
- Use ANSI function decls. - Sprinkle some static.
|
#
1.43 |
|
29-May-2005 |
christos |
branches: 1.43.2; - sprinkle const - avoid shadow variables.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.42 |
|
26-Feb-2005 |
perry |
branches: 1.42.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.41 |
|
20-Jun-2004 |
hannken |
branches: 1.41.4; 1.41.6; Use a pool for struct direct instead of kernel stack. Reduces the kernel stack usage by 264 bytes.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.40 |
|
25-May-2004 |
hannken |
Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.39 |
|
27-Apr-2004 |
jrf |
First pass for some caddr_t removal and changes to get rid of it where we no longer use and/or need it
- removed casts from unionfs, deadfs and fdesc (there are more to hunt down still) - changed vfs_quotactl args argumet from caddr_t to void * - changed vfs_quotactl structures/callers to reflect the api change
Compiled fine and ran for about a day. Approved/reviewed by christos@netbsd.org and gimpy@netbsd.org.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.38 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.37 |
|
05-Aug-2003 |
pk |
Pass the inode flags to set as an argument to ufs_dirrewrite(). Use it to restore the behaviour of not updating the modified time of a directory that moves to a new parent.
|
#
1.36 |
|
29-Jun-2003 |
fvdl |
branches: 1.36.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.35 |
|
29-Jun-2003 |
thorpej |
Undo part of the ktrace/lwp changes. In particular: * Remove the "lwp *" argument that was added to vget(). Turns out that nothing actually used it! * Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(), and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted above, didn't use it). * Remove all of the "lwp *" arguments to internal functions that were added just to appease the above.
|
#
1.34 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.33 |
|
18-May-2003 |
yamt |
make is_sequential a callback in order to achieve better lfs write clustering.
since lfs always rewrite blocks into the new segment, current on-disk place of the block doesn't affect to write clustering.
ok'ed by Konrad Schroder.
|
#
1.32 |
|
02-Apr-2003 |
fvdl |
Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
#
1.31 |
|
17-Feb-2003 |
perseant |
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.30 |
|
24-Jan-2003 |
fvdl |
Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.29 |
|
01-Dec-2002 |
matt |
Add multiple inclusion protection for headers. Fix mismatched variable declarations (missing const's) as needed.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base eeh-devprop-base newlock-base ifpoll-base kqueue-base
|
#
1.28 |
|
18-Dec-2001 |
fvdl |
Bring over fixes from FreeBSD that weren't incorporated yet, mainly from Kirk McKusick. They implement taking pending block/inode frees into account for the sake of correct statfs() numbers, and adding a new softdep type (newdirblk) to correctly handle newly allocated directory blocks.
Minor additional changes: 1) swap the newly introduced fs_pendinginodes and fs_pendingblock fields in ffs_sb_swap, and 2) declare lkt_held in the debug version of the softdep lock structure volatile, as it can be modified from interrupt context #ifdef DEBUG.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf
|
#
1.27 |
|
15-Sep-2001 |
chs |
a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
|
Revision tags: pre-chs-ubcperf
|
#
1.26 |
|
15-Sep-2001 |
chs |
add a new VFS op, vfs_reinit, which is called when desiredvnodes is adjusted via sysctl. file systems that have hash tables which are sized based on the value of this variable now resize those hash tables using the new value. the max number of FFS softdeps is also recalculated.
convert various file systems to use the <sys/queue.h> macros for their hash tables.
|
Revision tags: thorpej-devvp-base perseant-lfsv2-base
|
#
1.25 |
|
28-May-2001 |
chs |
branches: 1.25.4; 1.25.6; add a genfs_mmap() and change all of the disk-based filesystems to implement VOP_MMAP() with the genfs version, in preparation for actually using this VOP.
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.24 |
|
27-Nov-2000 |
chs |
branches: 1.24.2; Initial integration of the Unified Buffer Cache project.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.23 |
|
16-Mar-2000 |
jdolecek |
Change ufs_init() to keep global count of how many times it was called. Resources are initialized still just once (on first call).
Add ufs_done(), which takes care of freeing all resources allocated in ufs_init(). The resources are freed only when last user of the code exits.
|
#
1.22 |
|
14-Feb-2000 |
fvdl |
Fixes to the softdep code from Ethan Solomita <ethan@geocast.com>. * Fix buffer ordering when it has dependencies. * Alleviate memory problems. * Deal with some recursive vnode locks (sigh). * Fix other bugs.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.21 |
|
15-Nov-1999 |
fvdl |
Add Kirk McKusick's soft updates code to the trunk. Not enabled by default, as the copyright on the main file (ffs_softdep.c) is such that is has been put into gnusrc. options SOFTDEP will pull this in. This code also contains the trickle syncer.
Bump version number to 1.4O
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.20 |
|
03-Aug-1999 |
wrstuden |
branches: 1.20.2; 1.20.4; 1.20.8; Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl call with F_FSCTL set and F_SETFL calls generate calls to a new fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0 for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems use genfs_fcntl().
Reviewed by: thorpej Tested by: wrstuden
|
#
1.19 |
|
03-Aug-1999 |
drochner |
clean up inclusion of "opt_ffs.h" and use of "FFS_EI" a bit
|
Revision tags: chs-ubc2-base
|
#
1.18 |
|
08-Jul-1999 |
wrstuden |
Modify file systems to deal with struct lock in struct vnode. All leaf fs's other than nfs use genfs_lock() for locking.
Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.17 |
|
26-Feb-1999 |
wrstuden |
branches: 1.17.4; Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now only handles the file handle to vnode conversion, and a new call, vfs_checkexp(), performs the export verification.
|
Revision tags: kenh-if-detach-base
|
#
1.16 |
|
12-Nov-1998 |
thorpej |
defopt FFS_EI
|
Revision tags: chs-ubc-base
|
#
1.15 |
|
10-Aug-1998 |
matthias |
create miscfs/genfs/genfs_vnops.c:genfs_enoioctl and make all the other filesystems use it instead of a private version.
|
Revision tags: eeh-paddr_t-base
|
#
1.14 |
|
25-Jun-1998 |
thorpej |
Use genfs_lease_check()
|
#
1.13 |
|
24-Jun-1998 |
sommerfe |
Always include fifos; "not an option any more".
|
#
1.12 |
|
22-Jun-1998 |
sommerfe |
defopt for options FIFO
|
#
1.11 |
|
13-Jun-1998 |
kleink |
KNF, mostly of FFS_EI changes.
|
#
1.10 |
|
18-Mar-1998 |
bouyer |
Add support for reading/writing FFS in non-native byte order, conditioned to "options FFS_EI". The superblock and inodes (without blk addr) are byteswapped at disk read/write time, other metadatas are byteswapped when used (as they are acceeded directly in the buffer cache). This required the addition of a "um_flags" field to struct ufsmount. ffs_bswap.c contains superblock and inode byteswap routines also used by userland utilities.
|
#
1.9 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.8 |
|
11-Apr-1997 |
kleink |
Implement a POSIX compliant genfs VOP_SEEK() and use it in the appropriate places; by Chris G. Demetriou and myself.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.7 |
|
07-Sep-1996 |
mycroft |
Implement poll(2).
|
#
1.6 |
|
01-Sep-1996 |
mycroft |
Add a set of generic file system operations that most file systems use. Also, fix some time stamp bogosities.
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.5 |
|
09-Feb-1996 |
christos |
ufs prototype changes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.4 |
|
14-Dec-1994 |
mycroft |
Sync with CSRG.
|
#
1.3 |
|
13-Dec-1994 |
mycroft |
Turn lease_check() into a vnode op, per CSRG.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.2 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.1 |
|
08-Jun-1994 |
mycroft |
branches: 1.1.1; Update to 4.4-Lite fs code, with local changes.
|
#
1.85 |
|
18-Apr-2020 |
christos |
Extended attribute support for ffsv2, from FreeBSD.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1
|
#
1.84 |
|
17-Jan-2020 |
ad |
VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
Revision tags: netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 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 prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
|
#
1.83 |
|
28-Oct-2016 |
jdolecek |
branches: 1.83.16; 1.83.22; reorganize ffs_truncate()/ffs_indirtrunc() to be able to partially succeed; change wapbl_register_deallocation() to return EAGAIN rather than panic when code hits the limit
callers changed to either loop calling ffs_truncate() using new utility ufs_truncate_retry() if their semantics requires it, or just ignore the failure; remove ufs_wapbl_truncate()
this fixes possible user-triggerable panic during truncate, and resolves WAPBL performance issue with truncates of large files
PR kern/47146 and kern/49175
|
Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422
|
#
1.82 |
|
12-Apr-2016 |
christos |
branches: 1.82.2; Remove gcc hack, it does not help. Add more const.
|
#
1.81 |
|
12-Apr-2016 |
christos |
Provide reason to be printed in panic string.
|
#
1.80 |
|
11-Apr-2016 |
christos |
misc cleanups, no functional change
|
Revision tags: nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.79 |
|
27-Mar-2015 |
riastradh |
Disentangle buffer-cached I/O from page-cached I/O in UFS.
Page-cached I/O is used for regular files, and is initiated by VFS users such as userland and NFS.
Buffer-cached I/O is used for directories and symlinks, and is issued only internally by UFS.
New UFS routine ufs_bufio replaces vn_rdwr for internal use. ufs_bufio is implemented by new UFS operations uo_bufrd/uo_bufwr, which sit in ufs_readwrite.c alongside the VOP_READ/VOP_WRITE implementations.
I preserved the code as much as possible and will leave further simplification for future commits. I kept the ulfs_readwrite.c copypasta close to ufs_readwrite.c in case we ever want to merge them back; likewise ext2fs_readwrite.c.
No externally visible semantic change. All atf fs tests still pass.
|
#
1.78 |
|
17-Mar-2015 |
hannken |
Change ffs to use vcache_new: - Change ffs_valloc to return an inode number. - Remove now obsolete UFS operations UFS_VALLOC and UFS_VFREE. - Make ufs_makeinode private to ufs_vnops.c and pass vattr instead of mode.
|
Revision tags: nick-nhusb-base
|
#
1.77 |
|
29-Oct-2014 |
christos |
branches: 1.77.2; simplify and correct.
|
#
1.76 |
|
21-Oct-2014 |
slp |
Move and unify indirect block truncate algorithm into a separate function.
Reviewed by joerg.
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.75 |
|
25-May-2014 |
hannken |
branches: 1.75.2; Remove ufs_checkpath() and ufs_readdotdot(). These are relics from the pre-genfs_rename era.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.74 |
|
08-May-2014 |
hannken |
Add a global vnode cache:
- vcache_get() retrieves a referenced and initialised vnode / fs node pair. - vcache_remove() removes a vnode / fs node pair from the cache.
On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to initialise a vnode / fs node pair. This call is guaranteed exclusive, no other thread will try to load this vnode / fs node pair.
Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.
Remove now unused ufs/ufs_ihash
Discussed on tech-kern.
Welcome to 6.99.41
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.73 |
|
16-Jun-2013 |
hannken |
branches: 1.73.2; 1.73.6; Add an UFS_SNAPGONE() ufs op replacing the calls to ffs_snapgone() in ufs_lookup.c.
Ok: David Holland <dholland@netbsd.org>
Welcome to 6.99.22
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5
|
#
1.72 |
|
09-May-2012 |
riastradh |
branches: 1.72.2; Adapt ffs, lfs, and ext2fs to use genfs_rename.
ok dholland, rmind
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.71 |
|
01-Feb-2012 |
dholland |
Change the syscall API for quotas over to the new non-proplib one.
- struct vfs_quotactl_args -> struct quotactl_args - add sys/stdint.h to sys/quotactl.h for clean userland build - install sys/quotactl.h in /usr/include - update set lists for same - add new marshalling code in libquota - add new unmarshalling code in vfs_syscalls.c - discard proplib interpreter code in vfs_quotactl.c - add dispatching code for the 14 quotactl ops in vfs_quotactl.c - mark the proplib quotactl syscall obsolete - add a new syscall number for the new quotactl syscall - change the name of the syscall to __quotactl() - remove the decl of the old quotactl from quota/quotaprop.h - add a decl of the new quotactl to sys/quotactl.h - update the libc build - update ktruss - remove proplib marshalling code from libquota - update copy of syscall table in gdb ppc sources - hack rumphijack to accomodate new quotactl name (as I recall, pooka wanted such a name change to simplify something, but I don't really see what/how)
This change appears to require a kernel version bump for rumpish reasons.
|
#
1.70 |
|
29-Jan-2012 |
dholland |
Remove the extra op argument to VFS_QUOTACTL() - the op is now stored purely in the args structure.
This change requires a kernel version bump.
|
#
1.69 |
|
29-Jan-2012 |
dholland |
Introduce struct vfs_quotactl_args. Use it.
This change uglifies vfs_quotactl some in order to make room for moving operation-specific but FS-independent logic out of ufs_quota.c.
Note: this change requires a kernel version bump.
|
#
1.68 |
|
29-Jan-2012 |
dholland |
Move the proplib-based quota command dispatching (that is, the code that knows the magic string names for the allowed actions) out of UFS-specific code and to fs-independent code.
This introduces QUOTACTL_* operation codes and changes the signature of VFS_QUOTACTL() again for compile safety.
Note: this change requires a kernel version bump.
|
#
1.67 |
|
29-Jan-2012 |
dholland |
Move the code for iterating over the multiple RPC calls in a quota proplib XML packet to vfs_quotactl.c out of sys/ufs/ufs.
Add a dummy extra arg to VFS_QUOTACTL for compile safety.
Note: this change requires a kernel version bump.
|
Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.66 |
|
17-Jul-2011 |
dholland |
branches: 1.66.2; 1.66.6; Provide correct locking for ufs_wapbl_rename. Note that this does not fix the non-wapbl rename; that will be coming soon. This patch also leaves a lot of the older locking-related code around in #if 0 blocks, and there's a lot of leftover redundant logic. All that will be going away later.
Relates to at least these PRs:
PR kern/24887 PR kern/41417 PR kern/42093 PR kern/43626
and possibly others.
|
#
1.65 |
|
12-Jul-2011 |
dholland |
Pass the ufs_lookup_results pointer around instead of fetching it from the inode in the guts of ufs. Now, in VOPs where i_crap is used it is used (directly) only immediately on entry to the VOP call and then passed around by reference.
Except for rename, which needs explicit sorting out. The code in ufs_wapbl_rename is unchanged in behavior but I'm increasingly inclined to think it's wrong.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.64 |
|
04-Apr-2011 |
ahoka |
add "struct ufid;" so we can include it without ufs/inode.h
|
#
1.63 |
|
06-Mar-2011 |
bouyer |
merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 jym-xensuspend-nbase
|
#
1.62 |
|
13-Sep-2009 |
tsutsui |
branches: 1.62.4; 1.62.6; 1.62.8; Move declaration of ufs_hashlock into <ufs/ufs_extern.h> from each c source.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base
|
#
1.61 |
|
22-Feb-2009 |
ad |
PR kern/26878 FFSv2 + softdep = livelock (no free ram) PR kern/16942 panic with softdep and quotas PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch PR kern/26274 softdep panic: allocdirect_merge: ... PR kern/26374 Long delay before non-root users can write to softdep partitions PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk PR kern/31981 stopping scsi disk can cause panic (softdep) PR kern/32116 kernel panic in softdep (assertion failure) PR kern/32532 softdep_trackbufs deadlock PR kern/37191 softdep: locking against myself PR kern/40474 Kernel panic after remounting raid root with softdep
Retire softdep, pass 2. As discussed and later formally announced on the mailing lists.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base mjf-devfs2-base
|
#
1.60 |
|
31-May-2008 |
ad |
branches: 1.60.6; 1.60.8; 1.60.12; XXX softdep:
If the number of deletes in progress is getting too high, newdirrem() requests the syncer to flush faster, and in some cases will block to prevent deletes accumulating faster than the disk can service them.
The syncer will try to lock vnodes that the remover holds locked, leading to the syncer and remover proceeding in lockstep and making very little overall forward progress.
Put a hook into ufs_rmdir() and ufs_remove() so that the softdep code can pace itself without holding vnode locks if the number of deletes is running out of control.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
|
#
1.59 |
|
16-May-2008 |
hannken |
Make sure all cached buffers with valid, not yet written data have been run through copy-on-write. Call fscow_run() with valid data where possible.
The LP_UFSCOW hack is no longer needed to protect ffs_copyonwrite() against endless recursion.
- Add a flag B_MODIFY to bread(), breada() and breadn(). If set the caller intends to modify the buffer returned.
- Always run copy-on-write on buffers returned from ffs_balloc().
- Add new function ffs_getblk() that gets a buffer, assigns a new blkno, may clear the buffer and runs copy-on-write. Process possible errors from getblk() or fscow_run(). Part of PR kern/38664.
Welcome to 4.99.63
Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base2 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.58 |
|
25-Jan-2008 |
ad |
branches: 1.58.6; 1.58.8; 1.58.10; 1.58.12; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.57 |
|
03-Jan-2008 |
ad |
Use pool_cache.
|
#
1.56 |
|
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 vmlocking2-base1 vmlocking-nbase jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.55 |
|
26-Nov-2007 |
pooka |
branches: 1.55.2; 1.55.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: nick-csl-alignment-base5 matt-armv6-prevmlocking jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.54 |
|
09-Aug-2007 |
hannken |
branches: 1.54.2; 1.54.8; Move the fstrans-aware lock vnops from ufs to ffs. Other ufs file systems do not need them.
Ride on 4.99.28
|
Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.53 |
|
10-Jul-2007 |
hannken |
branches: 1.53.2; 1.53.6; Move `struct dquot' and its supporting functions from quota.h to ufs_quota.c.
- Make quota-internal functions static. - Clean up declarations in quota.h and ufs_extern.h. quota.h now has the description of quota criterions, on-disk structure, user-kernel interface and declaration of init/done functions. All ufs quota related function prototypes go to ufs_extern.h. - New functions ufsquota_init() and ufsquota_free() create or destroy the quota fields of `struct inode'. - chkdq() and chkiq() always update the quota fields of `struct inode' first. - Only ufs_access() explicitely calls getinoquota().
No objections on tech-kern@
|
Revision tags: yamt-idlelwp-base8 thorpej-atomic-base
|
#
1.52 |
|
04-Mar-2007 |
christos |
branches: 1.52.2; 1.52.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.51 |
|
21-Feb-2007 |
thorpej |
Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
|
Revision tags: post-newlock2-merge newlock2-nbase newlock2-base
|
#
1.50 |
|
19-Jan-2007 |
hannken |
branches: 1.50.2; New file system suspension API to replace vn_start_write and vn_finished_write. The suspension helpers are now put into file system specific operations. This means every file system not supporting these helpers cannot be suspended and therefore snapshots are no longer possible.
Implemented for file systems of type ffs.
The new API is enabled on a kernel option NEWVNGATE. This option is not enabled by default in any kernel config.
Presented and discussed on tech-kern with much input from Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.
Welcome to 4.99.9 (new vfs op vfs_suspendctl).
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.49 |
|
14-May-2006 |
elad |
branches: 1.49.8; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.48 |
|
14-Jan-2006 |
yamt |
branches: 1.48.2; 1.48.4; 1.48.6; 1.48.8; 1.48.10; - unify ffs_blkatoff and lfs_blkatoff. - remove ufs_ops::uo_blkatoff. - add directory read-ahead code. (disabled for now.)
|
#
1.47 |
|
11-Dec-2005 |
christos |
branches: 1.47.2; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.46 |
|
23-Sep-2005 |
jmmv |
Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
#
1.45 |
|
23-Jul-2005 |
yamt |
update file timestamps for nfsd loaned-read and mmap. PR/25279. discussed on tech-kern@.
|
#
1.44 |
|
10-Jul-2005 |
thorpej |
- Use ANSI function decls. - Sprinkle some static.
|
#
1.43 |
|
29-May-2005 |
christos |
branches: 1.43.2; - sprinkle const - avoid shadow variables.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.42 |
|
26-Feb-2005 |
perry |
branches: 1.42.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.41 |
|
20-Jun-2004 |
hannken |
branches: 1.41.4; 1.41.6; Use a pool for struct direct instead of kernel stack. Reduces the kernel stack usage by 264 bytes.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.40 |
|
25-May-2004 |
hannken |
Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.39 |
|
27-Apr-2004 |
jrf |
First pass for some caddr_t removal and changes to get rid of it where we no longer use and/or need it
- removed casts from unionfs, deadfs and fdesc (there are more to hunt down still) - changed vfs_quotactl args argumet from caddr_t to void * - changed vfs_quotactl structures/callers to reflect the api change
Compiled fine and ran for about a day. Approved/reviewed by christos@netbsd.org and gimpy@netbsd.org.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.38 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.37 |
|
05-Aug-2003 |
pk |
Pass the inode flags to set as an argument to ufs_dirrewrite(). Use it to restore the behaviour of not updating the modified time of a directory that moves to a new parent.
|
#
1.36 |
|
29-Jun-2003 |
fvdl |
branches: 1.36.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.35 |
|
29-Jun-2003 |
thorpej |
Undo part of the ktrace/lwp changes. In particular: * Remove the "lwp *" argument that was added to vget(). Turns out that nothing actually used it! * Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(), and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted above, didn't use it). * Remove all of the "lwp *" arguments to internal functions that were added just to appease the above.
|
#
1.34 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.33 |
|
18-May-2003 |
yamt |
make is_sequential a callback in order to achieve better lfs write clustering.
since lfs always rewrite blocks into the new segment, current on-disk place of the block doesn't affect to write clustering.
ok'ed by Konrad Schroder.
|
#
1.32 |
|
02-Apr-2003 |
fvdl |
Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
#
1.31 |
|
17-Feb-2003 |
perseant |
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.30 |
|
24-Jan-2003 |
fvdl |
Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.29 |
|
01-Dec-2002 |
matt |
Add multiple inclusion protection for headers. Fix mismatched variable declarations (missing const's) as needed.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base eeh-devprop-base newlock-base ifpoll-base kqueue-base
|
#
1.28 |
|
18-Dec-2001 |
fvdl |
Bring over fixes from FreeBSD that weren't incorporated yet, mainly from Kirk McKusick. They implement taking pending block/inode frees into account for the sake of correct statfs() numbers, and adding a new softdep type (newdirblk) to correctly handle newly allocated directory blocks.
Minor additional changes: 1) swap the newly introduced fs_pendinginodes and fs_pendingblock fields in ffs_sb_swap, and 2) declare lkt_held in the debug version of the softdep lock structure volatile, as it can be modified from interrupt context #ifdef DEBUG.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf
|
#
1.27 |
|
15-Sep-2001 |
chs |
a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
|
Revision tags: pre-chs-ubcperf
|
#
1.26 |
|
15-Sep-2001 |
chs |
add a new VFS op, vfs_reinit, which is called when desiredvnodes is adjusted via sysctl. file systems that have hash tables which are sized based on the value of this variable now resize those hash tables using the new value. the max number of FFS softdeps is also recalculated.
convert various file systems to use the <sys/queue.h> macros for their hash tables.
|
Revision tags: thorpej-devvp-base perseant-lfsv2-base
|
#
1.25 |
|
28-May-2001 |
chs |
branches: 1.25.4; 1.25.6; add a genfs_mmap() and change all of the disk-based filesystems to implement VOP_MMAP() with the genfs version, in preparation for actually using this VOP.
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.24 |
|
27-Nov-2000 |
chs |
branches: 1.24.2; Initial integration of the Unified Buffer Cache project.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.23 |
|
16-Mar-2000 |
jdolecek |
Change ufs_init() to keep global count of how many times it was called. Resources are initialized still just once (on first call).
Add ufs_done(), which takes care of freeing all resources allocated in ufs_init(). The resources are freed only when last user of the code exits.
|
#
1.22 |
|
14-Feb-2000 |
fvdl |
Fixes to the softdep code from Ethan Solomita <ethan@geocast.com>. * Fix buffer ordering when it has dependencies. * Alleviate memory problems. * Deal with some recursive vnode locks (sigh). * Fix other bugs.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.21 |
|
15-Nov-1999 |
fvdl |
Add Kirk McKusick's soft updates code to the trunk. Not enabled by default, as the copyright on the main file (ffs_softdep.c) is such that is has been put into gnusrc. options SOFTDEP will pull this in. This code also contains the trickle syncer.
Bump version number to 1.4O
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.20 |
|
03-Aug-1999 |
wrstuden |
branches: 1.20.2; 1.20.4; 1.20.8; Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl call with F_FSCTL set and F_SETFL calls generate calls to a new fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0 for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems use genfs_fcntl().
Reviewed by: thorpej Tested by: wrstuden
|
#
1.19 |
|
03-Aug-1999 |
drochner |
clean up inclusion of "opt_ffs.h" and use of "FFS_EI" a bit
|
Revision tags: chs-ubc2-base
|
#
1.18 |
|
08-Jul-1999 |
wrstuden |
Modify file systems to deal with struct lock in struct vnode. All leaf fs's other than nfs use genfs_lock() for locking.
Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.17 |
|
26-Feb-1999 |
wrstuden |
branches: 1.17.4; Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now only handles the file handle to vnode conversion, and a new call, vfs_checkexp(), performs the export verification.
|
Revision tags: kenh-if-detach-base
|
#
1.16 |
|
12-Nov-1998 |
thorpej |
defopt FFS_EI
|
Revision tags: chs-ubc-base
|
#
1.15 |
|
10-Aug-1998 |
matthias |
create miscfs/genfs/genfs_vnops.c:genfs_enoioctl and make all the other filesystems use it instead of a private version.
|
Revision tags: eeh-paddr_t-base
|
#
1.14 |
|
25-Jun-1998 |
thorpej |
Use genfs_lease_check()
|
#
1.13 |
|
24-Jun-1998 |
sommerfe |
Always include fifos; "not an option any more".
|
#
1.12 |
|
22-Jun-1998 |
sommerfe |
defopt for options FIFO
|
#
1.11 |
|
13-Jun-1998 |
kleink |
KNF, mostly of FFS_EI changes.
|
#
1.10 |
|
18-Mar-1998 |
bouyer |
Add support for reading/writing FFS in non-native byte order, conditioned to "options FFS_EI". The superblock and inodes (without blk addr) are byteswapped at disk read/write time, other metadatas are byteswapped when used (as they are acceeded directly in the buffer cache). This required the addition of a "um_flags" field to struct ufsmount. ffs_bswap.c contains superblock and inode byteswap routines also used by userland utilities.
|
#
1.9 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.8 |
|
11-Apr-1997 |
kleink |
Implement a POSIX compliant genfs VOP_SEEK() and use it in the appropriate places; by Chris G. Demetriou and myself.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.7 |
|
07-Sep-1996 |
mycroft |
Implement poll(2).
|
#
1.6 |
|
01-Sep-1996 |
mycroft |
Add a set of generic file system operations that most file systems use. Also, fix some time stamp bogosities.
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.5 |
|
09-Feb-1996 |
christos |
ufs prototype changes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.4 |
|
14-Dec-1994 |
mycroft |
Sync with CSRG.
|
#
1.3 |
|
13-Dec-1994 |
mycroft |
Turn lease_check() into a vnode op, per CSRG.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.2 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.1 |
|
08-Jun-1994 |
mycroft |
branches: 1.1.1; Update to 4.4-Lite fs code, with local changes.
|
Revision tags: ad-namecache-base1
|
#
1.84 |
|
17-Jan-2020 |
ad |
VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
Revision tags: 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 prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
|
#
1.83 |
|
28-Oct-2016 |
jdolecek |
branches: 1.83.22; reorganize ffs_truncate()/ffs_indirtrunc() to be able to partially succeed; change wapbl_register_deallocation() to return EAGAIN rather than panic when code hits the limit
callers changed to either loop calling ffs_truncate() using new utility ufs_truncate_retry() if their semantics requires it, or just ignore the failure; remove ufs_wapbl_truncate()
this fixes possible user-triggerable panic during truncate, and resolves WAPBL performance issue with truncates of large files
PR kern/47146 and kern/49175
|
Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422
|
#
1.82 |
|
12-Apr-2016 |
christos |
branches: 1.82.2; Remove gcc hack, it does not help. Add more const.
|
#
1.81 |
|
12-Apr-2016 |
christos |
Provide reason to be printed in panic string.
|
#
1.80 |
|
11-Apr-2016 |
christos |
misc cleanups, no functional change
|
Revision tags: nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.79 |
|
27-Mar-2015 |
riastradh |
Disentangle buffer-cached I/O from page-cached I/O in UFS.
Page-cached I/O is used for regular files, and is initiated by VFS users such as userland and NFS.
Buffer-cached I/O is used for directories and symlinks, and is issued only internally by UFS.
New UFS routine ufs_bufio replaces vn_rdwr for internal use. ufs_bufio is implemented by new UFS operations uo_bufrd/uo_bufwr, which sit in ufs_readwrite.c alongside the VOP_READ/VOP_WRITE implementations.
I preserved the code as much as possible and will leave further simplification for future commits. I kept the ulfs_readwrite.c copypasta close to ufs_readwrite.c in case we ever want to merge them back; likewise ext2fs_readwrite.c.
No externally visible semantic change. All atf fs tests still pass.
|
#
1.78 |
|
17-Mar-2015 |
hannken |
Change ffs to use vcache_new: - Change ffs_valloc to return an inode number. - Remove now obsolete UFS operations UFS_VALLOC and UFS_VFREE. - Make ufs_makeinode private to ufs_vnops.c and pass vattr instead of mode.
|
Revision tags: nick-nhusb-base
|
#
1.77 |
|
29-Oct-2014 |
christos |
branches: 1.77.2; simplify and correct.
|
#
1.76 |
|
21-Oct-2014 |
slp |
Move and unify indirect block truncate algorithm into a separate function.
Reviewed by joerg.
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.75 |
|
25-May-2014 |
hannken |
branches: 1.75.2; Remove ufs_checkpath() and ufs_readdotdot(). These are relics from the pre-genfs_rename era.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.74 |
|
08-May-2014 |
hannken |
Add a global vnode cache:
- vcache_get() retrieves a referenced and initialised vnode / fs node pair. - vcache_remove() removes a vnode / fs node pair from the cache.
On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to initialise a vnode / fs node pair. This call is guaranteed exclusive, no other thread will try to load this vnode / fs node pair.
Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.
Remove now unused ufs/ufs_ihash
Discussed on tech-kern.
Welcome to 6.99.41
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.73 |
|
16-Jun-2013 |
hannken |
branches: 1.73.2; 1.73.6; Add an UFS_SNAPGONE() ufs op replacing the calls to ffs_snapgone() in ufs_lookup.c.
Ok: David Holland <dholland@netbsd.org>
Welcome to 6.99.22
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5
|
#
1.72 |
|
09-May-2012 |
riastradh |
branches: 1.72.2; Adapt ffs, lfs, and ext2fs to use genfs_rename.
ok dholland, rmind
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.71 |
|
01-Feb-2012 |
dholland |
Change the syscall API for quotas over to the new non-proplib one.
- struct vfs_quotactl_args -> struct quotactl_args - add sys/stdint.h to sys/quotactl.h for clean userland build - install sys/quotactl.h in /usr/include - update set lists for same - add new marshalling code in libquota - add new unmarshalling code in vfs_syscalls.c - discard proplib interpreter code in vfs_quotactl.c - add dispatching code for the 14 quotactl ops in vfs_quotactl.c - mark the proplib quotactl syscall obsolete - add a new syscall number for the new quotactl syscall - change the name of the syscall to __quotactl() - remove the decl of the old quotactl from quota/quotaprop.h - add a decl of the new quotactl to sys/quotactl.h - update the libc build - update ktruss - remove proplib marshalling code from libquota - update copy of syscall table in gdb ppc sources - hack rumphijack to accomodate new quotactl name (as I recall, pooka wanted such a name change to simplify something, but I don't really see what/how)
This change appears to require a kernel version bump for rumpish reasons.
|
#
1.70 |
|
29-Jan-2012 |
dholland |
Remove the extra op argument to VFS_QUOTACTL() - the op is now stored purely in the args structure.
This change requires a kernel version bump.
|
#
1.69 |
|
29-Jan-2012 |
dholland |
Introduce struct vfs_quotactl_args. Use it.
This change uglifies vfs_quotactl some in order to make room for moving operation-specific but FS-independent logic out of ufs_quota.c.
Note: this change requires a kernel version bump.
|
#
1.68 |
|
29-Jan-2012 |
dholland |
Move the proplib-based quota command dispatching (that is, the code that knows the magic string names for the allowed actions) out of UFS-specific code and to fs-independent code.
This introduces QUOTACTL_* operation codes and changes the signature of VFS_QUOTACTL() again for compile safety.
Note: this change requires a kernel version bump.
|
#
1.67 |
|
29-Jan-2012 |
dholland |
Move the code for iterating over the multiple RPC calls in a quota proplib XML packet to vfs_quotactl.c out of sys/ufs/ufs.
Add a dummy extra arg to VFS_QUOTACTL for compile safety.
Note: this change requires a kernel version bump.
|
Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.66 |
|
17-Jul-2011 |
dholland |
branches: 1.66.2; 1.66.6; Provide correct locking for ufs_wapbl_rename. Note that this does not fix the non-wapbl rename; that will be coming soon. This patch also leaves a lot of the older locking-related code around in #if 0 blocks, and there's a lot of leftover redundant logic. All that will be going away later.
Relates to at least these PRs:
PR kern/24887 PR kern/41417 PR kern/42093 PR kern/43626
and possibly others.
|
#
1.65 |
|
12-Jul-2011 |
dholland |
Pass the ufs_lookup_results pointer around instead of fetching it from the inode in the guts of ufs. Now, in VOPs where i_crap is used it is used (directly) only immediately on entry to the VOP call and then passed around by reference.
Except for rename, which needs explicit sorting out. The code in ufs_wapbl_rename is unchanged in behavior but I'm increasingly inclined to think it's wrong.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.64 |
|
04-Apr-2011 |
ahoka |
add "struct ufid;" so we can include it without ufs/inode.h
|
#
1.63 |
|
06-Mar-2011 |
bouyer |
merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 jym-xensuspend-nbase
|
#
1.62 |
|
13-Sep-2009 |
tsutsui |
branches: 1.62.4; 1.62.6; 1.62.8; Move declaration of ufs_hashlock into <ufs/ufs_extern.h> from each c source.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base
|
#
1.61 |
|
22-Feb-2009 |
ad |
PR kern/26878 FFSv2 + softdep = livelock (no free ram) PR kern/16942 panic with softdep and quotas PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch PR kern/26274 softdep panic: allocdirect_merge: ... PR kern/26374 Long delay before non-root users can write to softdep partitions PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk PR kern/31981 stopping scsi disk can cause panic (softdep) PR kern/32116 kernel panic in softdep (assertion failure) PR kern/32532 softdep_trackbufs deadlock PR kern/37191 softdep: locking against myself PR kern/40474 Kernel panic after remounting raid root with softdep
Retire softdep, pass 2. As discussed and later formally announced on the mailing lists.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base mjf-devfs2-base
|
#
1.60 |
|
31-May-2008 |
ad |
branches: 1.60.6; 1.60.8; 1.60.12; XXX softdep:
If the number of deletes in progress is getting too high, newdirrem() requests the syncer to flush faster, and in some cases will block to prevent deletes accumulating faster than the disk can service them.
The syncer will try to lock vnodes that the remover holds locked, leading to the syncer and remover proceeding in lockstep and making very little overall forward progress.
Put a hook into ufs_rmdir() and ufs_remove() so that the softdep code can pace itself without holding vnode locks if the number of deletes is running out of control.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
|
#
1.59 |
|
16-May-2008 |
hannken |
Make sure all cached buffers with valid, not yet written data have been run through copy-on-write. Call fscow_run() with valid data where possible.
The LP_UFSCOW hack is no longer needed to protect ffs_copyonwrite() against endless recursion.
- Add a flag B_MODIFY to bread(), breada() and breadn(). If set the caller intends to modify the buffer returned.
- Always run copy-on-write on buffers returned from ffs_balloc().
- Add new function ffs_getblk() that gets a buffer, assigns a new blkno, may clear the buffer and runs copy-on-write. Process possible errors from getblk() or fscow_run(). Part of PR kern/38664.
Welcome to 4.99.63
Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base2 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.58 |
|
25-Jan-2008 |
ad |
branches: 1.58.6; 1.58.8; 1.58.10; 1.58.12; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.57 |
|
03-Jan-2008 |
ad |
Use pool_cache.
|
#
1.56 |
|
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 vmlocking2-base1 vmlocking-nbase jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.55 |
|
26-Nov-2007 |
pooka |
branches: 1.55.2; 1.55.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: nick-csl-alignment-base5 matt-armv6-prevmlocking jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.54 |
|
09-Aug-2007 |
hannken |
branches: 1.54.2; 1.54.8; Move the fstrans-aware lock vnops from ufs to ffs. Other ufs file systems do not need them.
Ride on 4.99.28
|
Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.53 |
|
10-Jul-2007 |
hannken |
branches: 1.53.2; 1.53.6; Move `struct dquot' and its supporting functions from quota.h to ufs_quota.c.
- Make quota-internal functions static. - Clean up declarations in quota.h and ufs_extern.h. quota.h now has the description of quota criterions, on-disk structure, user-kernel interface and declaration of init/done functions. All ufs quota related function prototypes go to ufs_extern.h. - New functions ufsquota_init() and ufsquota_free() create or destroy the quota fields of `struct inode'. - chkdq() and chkiq() always update the quota fields of `struct inode' first. - Only ufs_access() explicitely calls getinoquota().
No objections on tech-kern@
|
Revision tags: yamt-idlelwp-base8 thorpej-atomic-base
|
#
1.52 |
|
04-Mar-2007 |
christos |
branches: 1.52.2; 1.52.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.51 |
|
21-Feb-2007 |
thorpej |
Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
|
Revision tags: post-newlock2-merge newlock2-nbase newlock2-base
|
#
1.50 |
|
19-Jan-2007 |
hannken |
branches: 1.50.2; New file system suspension API to replace vn_start_write and vn_finished_write. The suspension helpers are now put into file system specific operations. This means every file system not supporting these helpers cannot be suspended and therefore snapshots are no longer possible.
Implemented for file systems of type ffs.
The new API is enabled on a kernel option NEWVNGATE. This option is not enabled by default in any kernel config.
Presented and discussed on tech-kern with much input from Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.
Welcome to 4.99.9 (new vfs op vfs_suspendctl).
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.49 |
|
14-May-2006 |
elad |
branches: 1.49.8; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.48 |
|
14-Jan-2006 |
yamt |
branches: 1.48.2; 1.48.4; 1.48.6; 1.48.8; 1.48.10; - unify ffs_blkatoff and lfs_blkatoff. - remove ufs_ops::uo_blkatoff. - add directory read-ahead code. (disabled for now.)
|
#
1.47 |
|
11-Dec-2005 |
christos |
branches: 1.47.2; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.46 |
|
23-Sep-2005 |
jmmv |
Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
#
1.45 |
|
23-Jul-2005 |
yamt |
update file timestamps for nfsd loaned-read and mmap. PR/25279. discussed on tech-kern@.
|
#
1.44 |
|
10-Jul-2005 |
thorpej |
- Use ANSI function decls. - Sprinkle some static.
|
#
1.43 |
|
29-May-2005 |
christos |
branches: 1.43.2; - sprinkle const - avoid shadow variables.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.42 |
|
26-Feb-2005 |
perry |
branches: 1.42.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.41 |
|
20-Jun-2004 |
hannken |
branches: 1.41.4; 1.41.6; Use a pool for struct direct instead of kernel stack. Reduces the kernel stack usage by 264 bytes.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.40 |
|
25-May-2004 |
hannken |
Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.39 |
|
27-Apr-2004 |
jrf |
First pass for some caddr_t removal and changes to get rid of it where we no longer use and/or need it
- removed casts from unionfs, deadfs and fdesc (there are more to hunt down still) - changed vfs_quotactl args argumet from caddr_t to void * - changed vfs_quotactl structures/callers to reflect the api change
Compiled fine and ran for about a day. Approved/reviewed by christos@netbsd.org and gimpy@netbsd.org.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.38 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.37 |
|
05-Aug-2003 |
pk |
Pass the inode flags to set as an argument to ufs_dirrewrite(). Use it to restore the behaviour of not updating the modified time of a directory that moves to a new parent.
|
#
1.36 |
|
29-Jun-2003 |
fvdl |
branches: 1.36.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.35 |
|
29-Jun-2003 |
thorpej |
Undo part of the ktrace/lwp changes. In particular: * Remove the "lwp *" argument that was added to vget(). Turns out that nothing actually used it! * Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(), and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted above, didn't use it). * Remove all of the "lwp *" arguments to internal functions that were added just to appease the above.
|
#
1.34 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.33 |
|
18-May-2003 |
yamt |
make is_sequential a callback in order to achieve better lfs write clustering.
since lfs always rewrite blocks into the new segment, current on-disk place of the block doesn't affect to write clustering.
ok'ed by Konrad Schroder.
|
#
1.32 |
|
02-Apr-2003 |
fvdl |
Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
#
1.31 |
|
17-Feb-2003 |
perseant |
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.30 |
|
24-Jan-2003 |
fvdl |
Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.29 |
|
01-Dec-2002 |
matt |
Add multiple inclusion protection for headers. Fix mismatched variable declarations (missing const's) as needed.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base eeh-devprop-base newlock-base ifpoll-base kqueue-base
|
#
1.28 |
|
18-Dec-2001 |
fvdl |
Bring over fixes from FreeBSD that weren't incorporated yet, mainly from Kirk McKusick. They implement taking pending block/inode frees into account for the sake of correct statfs() numbers, and adding a new softdep type (newdirblk) to correctly handle newly allocated directory blocks.
Minor additional changes: 1) swap the newly introduced fs_pendinginodes and fs_pendingblock fields in ffs_sb_swap, and 2) declare lkt_held in the debug version of the softdep lock structure volatile, as it can be modified from interrupt context #ifdef DEBUG.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf
|
#
1.27 |
|
15-Sep-2001 |
chs |
a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
|
Revision tags: pre-chs-ubcperf
|
#
1.26 |
|
15-Sep-2001 |
chs |
add a new VFS op, vfs_reinit, which is called when desiredvnodes is adjusted via sysctl. file systems that have hash tables which are sized based on the value of this variable now resize those hash tables using the new value. the max number of FFS softdeps is also recalculated.
convert various file systems to use the <sys/queue.h> macros for their hash tables.
|
Revision tags: thorpej-devvp-base perseant-lfsv2-base
|
#
1.25 |
|
28-May-2001 |
chs |
branches: 1.25.4; 1.25.6; add a genfs_mmap() and change all of the disk-based filesystems to implement VOP_MMAP() with the genfs version, in preparation for actually using this VOP.
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.24 |
|
27-Nov-2000 |
chs |
branches: 1.24.2; Initial integration of the Unified Buffer Cache project.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.23 |
|
16-Mar-2000 |
jdolecek |
Change ufs_init() to keep global count of how many times it was called. Resources are initialized still just once (on first call).
Add ufs_done(), which takes care of freeing all resources allocated in ufs_init(). The resources are freed only when last user of the code exits.
|
#
1.22 |
|
14-Feb-2000 |
fvdl |
Fixes to the softdep code from Ethan Solomita <ethan@geocast.com>. * Fix buffer ordering when it has dependencies. * Alleviate memory problems. * Deal with some recursive vnode locks (sigh). * Fix other bugs.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.21 |
|
15-Nov-1999 |
fvdl |
Add Kirk McKusick's soft updates code to the trunk. Not enabled by default, as the copyright on the main file (ffs_softdep.c) is such that is has been put into gnusrc. options SOFTDEP will pull this in. This code also contains the trickle syncer.
Bump version number to 1.4O
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.20 |
|
03-Aug-1999 |
wrstuden |
branches: 1.20.2; 1.20.4; 1.20.8; Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl call with F_FSCTL set and F_SETFL calls generate calls to a new fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0 for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems use genfs_fcntl().
Reviewed by: thorpej Tested by: wrstuden
|
#
1.19 |
|
03-Aug-1999 |
drochner |
clean up inclusion of "opt_ffs.h" and use of "FFS_EI" a bit
|
Revision tags: chs-ubc2-base
|
#
1.18 |
|
08-Jul-1999 |
wrstuden |
Modify file systems to deal with struct lock in struct vnode. All leaf fs's other than nfs use genfs_lock() for locking.
Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.17 |
|
26-Feb-1999 |
wrstuden |
branches: 1.17.4; Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now only handles the file handle to vnode conversion, and a new call, vfs_checkexp(), performs the export verification.
|
Revision tags: kenh-if-detach-base
|
#
1.16 |
|
12-Nov-1998 |
thorpej |
defopt FFS_EI
|
Revision tags: chs-ubc-base
|
#
1.15 |
|
10-Aug-1998 |
matthias |
create miscfs/genfs/genfs_vnops.c:genfs_enoioctl and make all the other filesystems use it instead of a private version.
|
Revision tags: eeh-paddr_t-base
|
#
1.14 |
|
25-Jun-1998 |
thorpej |
Use genfs_lease_check()
|
#
1.13 |
|
24-Jun-1998 |
sommerfe |
Always include fifos; "not an option any more".
|
#
1.12 |
|
22-Jun-1998 |
sommerfe |
defopt for options FIFO
|
#
1.11 |
|
13-Jun-1998 |
kleink |
KNF, mostly of FFS_EI changes.
|
#
1.10 |
|
18-Mar-1998 |
bouyer |
Add support for reading/writing FFS in non-native byte order, conditioned to "options FFS_EI". The superblock and inodes (without blk addr) are byteswapped at disk read/write time, other metadatas are byteswapped when used (as they are acceeded directly in the buffer cache). This required the addition of a "um_flags" field to struct ufsmount. ffs_bswap.c contains superblock and inode byteswap routines also used by userland utilities.
|
#
1.9 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.8 |
|
11-Apr-1997 |
kleink |
Implement a POSIX compliant genfs VOP_SEEK() and use it in the appropriate places; by Chris G. Demetriou and myself.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.7 |
|
07-Sep-1996 |
mycroft |
Implement poll(2).
|
#
1.6 |
|
01-Sep-1996 |
mycroft |
Add a set of generic file system operations that most file systems use. Also, fix some time stamp bogosities.
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.5 |
|
09-Feb-1996 |
christos |
ufs prototype changes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.4 |
|
14-Dec-1994 |
mycroft |
Sync with CSRG.
|
#
1.3 |
|
13-Dec-1994 |
mycroft |
Turn lease_check() into a vnode op, per CSRG.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.2 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.1 |
|
08-Jun-1994 |
mycroft |
branches: 1.1.1; Update to 4.4-Lite fs code, with local changes.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104
|
#
1.83 |
|
28-Oct-2016 |
jdolecek |
reorganize ffs_truncate()/ffs_indirtrunc() to be able to partially succeed; change wapbl_register_deallocation() to return EAGAIN rather than panic when code hits the limit
callers changed to either loop calling ffs_truncate() using new utility ufs_truncate_retry() if their semantics requires it, or just ignore the failure; remove ufs_wapbl_truncate()
this fixes possible user-triggerable panic during truncate, and resolves WAPBL performance issue with truncates of large files
PR kern/47146 and kern/49175
|
Revision tags: nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422
|
#
1.82 |
|
12-Apr-2016 |
christos |
branches: 1.82.2; Remove gcc hack, it does not help. Add more const.
|
#
1.81 |
|
12-Apr-2016 |
christos |
Provide reason to be printed in panic string.
|
#
1.80 |
|
11-Apr-2016 |
christos |
misc cleanups, no functional change
|
Revision tags: nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.79 |
|
27-Mar-2015 |
riastradh |
Disentangle buffer-cached I/O from page-cached I/O in UFS.
Page-cached I/O is used for regular files, and is initiated by VFS users such as userland and NFS.
Buffer-cached I/O is used for directories and symlinks, and is issued only internally by UFS.
New UFS routine ufs_bufio replaces vn_rdwr for internal use. ufs_bufio is implemented by new UFS operations uo_bufrd/uo_bufwr, which sit in ufs_readwrite.c alongside the VOP_READ/VOP_WRITE implementations.
I preserved the code as much as possible and will leave further simplification for future commits. I kept the ulfs_readwrite.c copypasta close to ufs_readwrite.c in case we ever want to merge them back; likewise ext2fs_readwrite.c.
No externally visible semantic change. All atf fs tests still pass.
|
#
1.78 |
|
17-Mar-2015 |
hannken |
Change ffs to use vcache_new: - Change ffs_valloc to return an inode number. - Remove now obsolete UFS operations UFS_VALLOC and UFS_VFREE. - Make ufs_makeinode private to ufs_vnops.c and pass vattr instead of mode.
|
Revision tags: nick-nhusb-base
|
#
1.77 |
|
29-Oct-2014 |
christos |
branches: 1.77.2; simplify and correct.
|
#
1.76 |
|
21-Oct-2014 |
slp |
Move and unify indirect block truncate algorithm into a separate function.
Reviewed by joerg.
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.75 |
|
25-May-2014 |
hannken |
branches: 1.75.2; Remove ufs_checkpath() and ufs_readdotdot(). These are relics from the pre-genfs_rename era.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.74 |
|
08-May-2014 |
hannken |
Add a global vnode cache:
- vcache_get() retrieves a referenced and initialised vnode / fs node pair. - vcache_remove() removes a vnode / fs node pair from the cache.
On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to initialise a vnode / fs node pair. This call is guaranteed exclusive, no other thread will try to load this vnode / fs node pair.
Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.
Remove now unused ufs/ufs_ihash
Discussed on tech-kern.
Welcome to 6.99.41
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.73 |
|
16-Jun-2013 |
hannken |
branches: 1.73.2; 1.73.6; Add an UFS_SNAPGONE() ufs op replacing the calls to ffs_snapgone() in ufs_lookup.c.
Ok: David Holland <dholland@netbsd.org>
Welcome to 6.99.22
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 jmcneill-usbmp-base10 yamt-pagecache-base5
|
#
1.72 |
|
09-May-2012 |
riastradh |
branches: 1.72.2; Adapt ffs, lfs, and ext2fs to use genfs_rename.
ok dholland, rmind
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.71 |
|
01-Feb-2012 |
dholland |
Change the syscall API for quotas over to the new non-proplib one.
- struct vfs_quotactl_args -> struct quotactl_args - add sys/stdint.h to sys/quotactl.h for clean userland build - install sys/quotactl.h in /usr/include - update set lists for same - add new marshalling code in libquota - add new unmarshalling code in vfs_syscalls.c - discard proplib interpreter code in vfs_quotactl.c - add dispatching code for the 14 quotactl ops in vfs_quotactl.c - mark the proplib quotactl syscall obsolete - add a new syscall number for the new quotactl syscall - change the name of the syscall to __quotactl() - remove the decl of the old quotactl from quota/quotaprop.h - add a decl of the new quotactl to sys/quotactl.h - update the libc build - update ktruss - remove proplib marshalling code from libquota - update copy of syscall table in gdb ppc sources - hack rumphijack to accomodate new quotactl name (as I recall, pooka wanted such a name change to simplify something, but I don't really see what/how)
This change appears to require a kernel version bump for rumpish reasons.
|
#
1.70 |
|
29-Jan-2012 |
dholland |
Remove the extra op argument to VFS_QUOTACTL() - the op is now stored purely in the args structure.
This change requires a kernel version bump.
|
#
1.69 |
|
29-Jan-2012 |
dholland |
Introduce struct vfs_quotactl_args. Use it.
This change uglifies vfs_quotactl some in order to make room for moving operation-specific but FS-independent logic out of ufs_quota.c.
Note: this change requires a kernel version bump.
|
#
1.68 |
|
29-Jan-2012 |
dholland |
Move the proplib-based quota command dispatching (that is, the code that knows the magic string names for the allowed actions) out of UFS-specific code and to fs-independent code.
This introduces QUOTACTL_* operation codes and changes the signature of VFS_QUOTACTL() again for compile safety.
Note: this change requires a kernel version bump.
|
#
1.67 |
|
29-Jan-2012 |
dholland |
Move the code for iterating over the multiple RPC calls in a quota proplib XML packet to vfs_quotactl.c out of sys/ufs/ufs.
Add a dummy extra arg to VFS_QUOTACTL for compile safety.
Note: this change requires a kernel version bump.
|
Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.66 |
|
17-Jul-2011 |
dholland |
branches: 1.66.2; 1.66.6; Provide correct locking for ufs_wapbl_rename. Note that this does not fix the non-wapbl rename; that will be coming soon. This patch also leaves a lot of the older locking-related code around in #if 0 blocks, and there's a lot of leftover redundant logic. All that will be going away later.
Relates to at least these PRs:
PR kern/24887 PR kern/41417 PR kern/42093 PR kern/43626
and possibly others.
|
#
1.65 |
|
12-Jul-2011 |
dholland |
Pass the ufs_lookup_results pointer around instead of fetching it from the inode in the guts of ufs. Now, in VOPs where i_crap is used it is used (directly) only immediately on entry to the VOP call and then passed around by reference.
Except for rename, which needs explicit sorting out. The code in ufs_wapbl_rename is unchanged in behavior but I'm increasingly inclined to think it's wrong.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.64 |
|
04-Apr-2011 |
ahoka |
add "struct ufid;" so we can include it without ufs/inode.h
|
#
1.63 |
|
06-Mar-2011 |
bouyer |
merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 jym-xensuspend-nbase
|
#
1.62 |
|
13-Sep-2009 |
tsutsui |
branches: 1.62.4; 1.62.6; 1.62.8; Move declaration of ufs_hashlock into <ufs/ufs_extern.h> from each c source.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base nick-hppapmap-base
|
#
1.61 |
|
22-Feb-2009 |
ad |
PR kern/26878 FFSv2 + softdep = livelock (no free ram) PR kern/16942 panic with softdep and quotas PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch PR kern/26274 softdep panic: allocdirect_merge: ... PR kern/26374 Long delay before non-root users can write to softdep partitions PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk PR kern/31981 stopping scsi disk can cause panic (softdep) PR kern/32116 kernel panic in softdep (assertion failure) PR kern/32532 softdep_trackbufs deadlock PR kern/37191 softdep: locking against myself PR kern/40474 Kernel panic after remounting raid root with softdep
Retire softdep, pass 2. As discussed and later formally announced on the mailing lists.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base mjf-devfs2-base
|
#
1.60 |
|
31-May-2008 |
ad |
branches: 1.60.6; 1.60.8; 1.60.12; XXX softdep:
If the number of deletes in progress is getting too high, newdirrem() requests the syncer to flush faster, and in some cases will block to prevent deletes accumulating faster than the disk can service them.
The syncer will try to lock vnodes that the remover holds locked, leading to the syncer and remover proceeding in lockstep and making very little overall forward progress.
Put a hook into ufs_rmdir() and ufs_remove() so that the softdep code can pace itself without holding vnode locks if the number of deletes is running out of control.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-base2
|
#
1.59 |
|
16-May-2008 |
hannken |
Make sure all cached buffers with valid, not yet written data have been run through copy-on-write. Call fscow_run() with valid data where possible.
The LP_UFSCOW hack is no longer needed to protect ffs_copyonwrite() against endless recursion.
- Add a flag B_MODIFY to bread(), breada() and breadn(). If set the caller intends to modify the buffer returned.
- Always run copy-on-write on buffers returned from ffs_balloc().
- Add new function ffs_getblk() that gets a buffer, assigns a new blkno, may clear the buffer and runs copy-on-write. Process possible errors from getblk() or fscow_run(). Part of PR kern/38664.
Welcome to 4.99.63
Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base2 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.58 |
|
25-Jan-2008 |
ad |
branches: 1.58.6; 1.58.8; 1.58.10; 1.58.12; Remove VOP_LEASE. Discussed on tech-kern.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
#
1.57 |
|
03-Jan-2008 |
ad |
Use pool_cache.
|
#
1.56 |
|
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 vmlocking2-base1 vmlocking-nbase jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.55 |
|
26-Nov-2007 |
pooka |
branches: 1.55.2; 1.55.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: nick-csl-alignment-base5 matt-armv6-prevmlocking jmcneill-base bouyer-xenamd64-base2 yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.54 |
|
09-Aug-2007 |
hannken |
branches: 1.54.2; 1.54.8; Move the fstrans-aware lock vnops from ufs to ffs. Other ufs file systems do not need them.
Ride on 4.99.28
|
Revision tags: matt-mips64-base nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.53 |
|
10-Jul-2007 |
hannken |
branches: 1.53.2; 1.53.6; Move `struct dquot' and its supporting functions from quota.h to ufs_quota.c.
- Make quota-internal functions static. - Clean up declarations in quota.h and ufs_extern.h. quota.h now has the description of quota criterions, on-disk structure, user-kernel interface and declaration of init/done functions. All ufs quota related function prototypes go to ufs_extern.h. - New functions ufsquota_init() and ufsquota_free() create or destroy the quota fields of `struct inode'. - chkdq() and chkiq() always update the quota fields of `struct inode' first. - Only ufs_access() explicitely calls getinoquota().
No objections on tech-kern@
|
Revision tags: yamt-idlelwp-base8 thorpej-atomic-base
|
#
1.52 |
|
04-Mar-2007 |
christos |
branches: 1.52.2; 1.52.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: ad-audiomp-base
|
#
1.51 |
|
21-Feb-2007 |
thorpej |
Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
|
Revision tags: post-newlock2-merge newlock2-nbase newlock2-base
|
#
1.50 |
|
19-Jan-2007 |
hannken |
branches: 1.50.2; New file system suspension API to replace vn_start_write and vn_finished_write. The suspension helpers are now put into file system specific operations. This means every file system not supporting these helpers cannot be suspended and therefore snapshots are no longer possible.
Implemented for file systems of type ffs.
The new API is enabled on a kernel option NEWVNGATE. This option is not enabled by default in any kernel config.
Presented and discussed on tech-kern with much input from Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.
Welcome to 4.99.9 (new vfs op vfs_suspendctl).
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.49 |
|
14-May-2006 |
elad |
branches: 1.49.8; integrate kauth.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.48 |
|
14-Jan-2006 |
yamt |
branches: 1.48.2; 1.48.4; 1.48.6; 1.48.8; 1.48.10; - unify ffs_blkatoff and lfs_blkatoff. - remove ufs_ops::uo_blkatoff. - add directory read-ahead code. (disabled for now.)
|
#
1.47 |
|
11-Dec-2005 |
christos |
branches: 1.47.2; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.46 |
|
23-Sep-2005 |
jmmv |
Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
#
1.45 |
|
23-Jul-2005 |
yamt |
update file timestamps for nfsd loaned-read and mmap. PR/25279. discussed on tech-kern@.
|
#
1.44 |
|
10-Jul-2005 |
thorpej |
- Use ANSI function decls. - Sprinkle some static.
|
#
1.43 |
|
29-May-2005 |
christos |
branches: 1.43.2; - sprinkle const - avoid shadow variables.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.42 |
|
26-Feb-2005 |
perry |
branches: 1.42.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.41 |
|
20-Jun-2004 |
hannken |
branches: 1.41.4; 1.41.6; Use a pool for struct direct instead of kernel stack. Reduces the kernel stack usage by 264 bytes.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.40 |
|
25-May-2004 |
hannken |
Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
#
1.39 |
|
27-Apr-2004 |
jrf |
First pass for some caddr_t removal and changes to get rid of it where we no longer use and/or need it
- removed casts from unionfs, deadfs and fdesc (there are more to hunt down still) - changed vfs_quotactl args argumet from caddr_t to void * - changed vfs_quotactl structures/callers to reflect the api change
Compiled fine and ran for about a day. Approved/reviewed by christos@netbsd.org and gimpy@netbsd.org.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.38 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.37 |
|
05-Aug-2003 |
pk |
Pass the inode flags to set as an argument to ufs_dirrewrite(). Use it to restore the behaviour of not updating the modified time of a directory that moves to a new parent.
|
#
1.36 |
|
29-Jun-2003 |
fvdl |
branches: 1.36.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.35 |
|
29-Jun-2003 |
thorpej |
Undo part of the ktrace/lwp changes. In particular: * Remove the "lwp *" argument that was added to vget(). Turns out that nothing actually used it! * Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(), and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted above, didn't use it). * Remove all of the "lwp *" arguments to internal functions that were added just to appease the above.
|
#
1.34 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.33 |
|
18-May-2003 |
yamt |
make is_sequential a callback in order to achieve better lfs write clustering.
since lfs always rewrite blocks into the new segment, current on-disk place of the block doesn't affect to write clustering.
ok'ed by Konrad Schroder.
|
#
1.32 |
|
02-Apr-2003 |
fvdl |
Add support for UFS2. UFS2 is an enhanced FFS, adding support for 64 bit block pointers, extended attribute storage, and a few other things.
This commit does not yet include the code to manipulate the extended storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for FreeBSD.
|
#
1.31 |
|
17-Feb-2003 |
perseant |
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.30 |
|
24-Jan-2003 |
fvdl |
Bump daddr_t to 64 bits. Replace it with int32_t in all places where it was used on-disk, so that on-disk formats remain the same. Remove ufs_daddr_t and ufs_lbn_t for the time being.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.29 |
|
01-Dec-2002 |
matt |
Add multiple inclusion protection for headers. Fix mismatched variable declarations (missing const's) as needed.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base eeh-devprop-base newlock-base ifpoll-base kqueue-base
|
#
1.28 |
|
18-Dec-2001 |
fvdl |
Bring over fixes from FreeBSD that weren't incorporated yet, mainly from Kirk McKusick. They implement taking pending block/inode frees into account for the sake of correct statfs() numbers, and adding a new softdep type (newdirblk) to correctly handle newly allocated directory blocks.
Minor additional changes: 1) swap the newly introduced fs_pendinginodes and fs_pendingblock fields in ffs_sb_swap, and 2) declare lkt_held in the debug version of the softdep lock structure volatile, as it can be modified from interrupt context #ifdef DEBUG.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf
|
#
1.27 |
|
15-Sep-2001 |
chs |
a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
|
Revision tags: pre-chs-ubcperf
|
#
1.26 |
|
15-Sep-2001 |
chs |
add a new VFS op, vfs_reinit, which is called when desiredvnodes is adjusted via sysctl. file systems that have hash tables which are sized based on the value of this variable now resize those hash tables using the new value. the max number of FFS softdeps is also recalculated.
convert various file systems to use the <sys/queue.h> macros for their hash tables.
|
Revision tags: thorpej-devvp-base perseant-lfsv2-base
|
#
1.25 |
|
28-May-2001 |
chs |
branches: 1.25.4; 1.25.6; add a genfs_mmap() and change all of the disk-based filesystems to implement VOP_MMAP() with the genfs version, in preparation for actually using this VOP.
|
Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.24 |
|
27-Nov-2000 |
chs |
branches: 1.24.2; Initial integration of the Unified Buffer Cache project.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.23 |
|
16-Mar-2000 |
jdolecek |
Change ufs_init() to keep global count of how many times it was called. Resources are initialized still just once (on first call).
Add ufs_done(), which takes care of freeing all resources allocated in ufs_init(). The resources are freed only when last user of the code exits.
|
#
1.22 |
|
14-Feb-2000 |
fvdl |
Fixes to the softdep code from Ethan Solomita <ethan@geocast.com>. * Fix buffer ordering when it has dependencies. * Alleviate memory problems. * Deal with some recursive vnode locks (sigh). * Fix other bugs.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.21 |
|
15-Nov-1999 |
fvdl |
Add Kirk McKusick's soft updates code to the trunk. Not enabled by default, as the copyright on the main file (ffs_softdep.c) is such that is has been put into gnusrc. options SOFTDEP will pull this in. This code also contains the trickle syncer.
Bump version number to 1.4O
|
Revision tags: comdex-fall-1999-base fvdl-softdep-base
|
#
1.20 |
|
03-Aug-1999 |
wrstuden |
branches: 1.20.2; 1.20.4; 1.20.8; Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl call with F_FSCTL set and F_SETFL calls generate calls to a new fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0 for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems use genfs_fcntl().
Reviewed by: thorpej Tested by: wrstuden
|
#
1.19 |
|
03-Aug-1999 |
drochner |
clean up inclusion of "opt_ffs.h" and use of "FFS_EI" a bit
|
Revision tags: chs-ubc2-base
|
#
1.18 |
|
08-Jul-1999 |
wrstuden |
Modify file systems to deal with struct lock in struct vnode. All leaf fs's other than nfs use genfs_lock() for locking.
Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.17 |
|
26-Feb-1999 |
wrstuden |
branches: 1.17.4; Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now only handles the file handle to vnode conversion, and a new call, vfs_checkexp(), performs the export verification.
|
Revision tags: kenh-if-detach-base
|
#
1.16 |
|
12-Nov-1998 |
thorpej |
defopt FFS_EI
|
Revision tags: chs-ubc-base
|
#
1.15 |
|
10-Aug-1998 |
matthias |
create miscfs/genfs/genfs_vnops.c:genfs_enoioctl and make all the other filesystems use it instead of a private version.
|
Revision tags: eeh-paddr_t-base
|
#
1.14 |
|
25-Jun-1998 |
thorpej |
Use genfs_lease_check()
|
#
1.13 |
|
24-Jun-1998 |
sommerfe |
Always include fifos; "not an option any more".
|
#
1.12 |
|
22-Jun-1998 |
sommerfe |
defopt for options FIFO
|
#
1.11 |
|
13-Jun-1998 |
kleink |
KNF, mostly of FFS_EI changes.
|
#
1.10 |
|
18-Mar-1998 |
bouyer |
Add support for reading/writing FFS in non-native byte order, conditioned to "options FFS_EI". The superblock and inodes (without blk addr) are byteswapped at disk read/write time, other metadatas are byteswapped when used (as they are acceeded directly in the buffer cache). This required the addition of a "um_flags" field to struct ufsmount. ffs_bswap.c contains superblock and inode byteswap routines also used by userland utilities.
|
#
1.9 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.8 |
|
11-Apr-1997 |
kleink |
Implement a POSIX compliant genfs VOP_SEEK() and use it in the appropriate places; by Chris G. Demetriou and myself.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.7 |
|
07-Sep-1996 |
mycroft |
Implement poll(2).
|
#
1.6 |
|
01-Sep-1996 |
mycroft |
Add a set of generic file system operations that most file systems use. Also, fix some time stamp bogosities.
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.5 |
|
09-Feb-1996 |
christos |
ufs prototype changes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.4 |
|
14-Dec-1994 |
mycroft |
Sync with CSRG.
|
#
1.3 |
|
13-Dec-1994 |
mycroft |
Turn lease_check() into a vnode op, per CSRG.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.2 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.1 |
|
08-Jun-1994 |
mycroft |
branches: 1.1.1; Update to 4.4-Lite fs code, with local changes.
|