History log of /src/sys/fs/filecorefs/filecore_node.c |
Revision | | Date | Author | Comments |
1.31 |
| 26-May-2017 |
riastradh | Eliminate crusty debugging sludge.
We have a mostly sane vnode lifecycle now. If this needs debugging, it should be done once at the call site of VOP_RECLAIM.
|
1.30 |
| 26-May-2017 |
riastradh | Make VOP_RECLAIM do the last unlock of the vnode.
VOP_RECLAIM naturally has exclusive access to the vnode, so having it locked on entry is not strictly necessary -- but it means if there are any final operations that must be done on the vnode, such as ffs_update, requiring exclusive access to it, we can now kassert that the vnode is locked in those operations.
We can't just have the caller release the last lock because some file systems don't use genfs_lock, and require the vnode to remain valid for VOP_UNLOCK to work, notably unionfs.
|
1.29 |
| 11-Apr-2017 |
riastradh | Make VOP_INACTIVE preserve vnode lock on return.
Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2017/04/01/msg021751.html
Ride 7.99.68, a bumpy bus of incremental vfs improvements!
|
1.28 |
| 20-Aug-2016 |
hannken | branches: 1.28.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
1.27 |
| 04-Oct-2014 |
hannken | branches: 1.27.2; 1.27.4; Change filecore to vcache.
Compile-tested only, was not able to get my hands on a readable fs image.
|
1.26 |
| 27-Feb-2014 |
hannken | The current implementation of vn_lock() is racy. Modification of the vnode operations vector for active vnodes is unsafe because it is not known whether deadfs or the original file system will be called.
- Pass down LK_RETRY to the lock operation (hint for deadfs only).
- Change deadfs lock operation to return ENOENT if LK_RETRY is unset.
- Change all other lock operations to check for dead vnode once the vnode is locked and unlock and return ENOENT in this case.
With these changes in place vnode lock operations will never succeed after vclean() has marked the vnode as VI_XLOCK and before vclean() has changed the operations vector.
Adresses PR kern/37706 (Forced unmount of file systems is unsafe)
Discussed on tech-kern.
Welcome to 6.99.33
|
1.25 |
| 12-Jun-2011 |
rmind | branches: 1.25.2; 1.25.12; 1.25.16; Welcome to 5.99.53! Merge rmind-uvmplock branch:
- Reorganize locking in UVM and provide extra serialisation for pmap(9). New lock order: [vmpage-owner-lock] -> pmap-lock.
- Simplify locking in some pmap(9) modules by removing P->V locking.
- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).
- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner. Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.
- Unify /dev/mem et al in MI code and provide required locking (removes kernel-lock on some ports). Also, avoid cache-aliasing issues.
Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches formed the core changes of this branch.
|
1.24 |
| 23-May-2011 |
rmind | branches: 1.24.2; Convert some simple_lock(9) uses to mutex(9) and malloc(9) to kmem(9).
|
1.23 |
| 19-May-2011 |
rmind | Remove cache_purge(9) calls from reclamation routines in the file systems, as vclean(9) performs it for us since Lite2 merge.
|
1.22 |
| 21-Jul-2010 |
hannken | branches: 1.22.2; Make holding v_interlock mandatory for callers of vget().
Announced some time ago on tech-kern.
|
1.21 |
| 01-Jul-2010 |
hannken | Remove vlockmgr(). Generic vnode lock operations now use a rwlock located in the vnode. All LK_* flags move from sys/lock.h to sys/vnode.h. Calls to vlockmgr() in file systems get replaced with VOP_LOCK() or VOP_UNLOCK().
Welcome to 5.99.34.
Discussed on tech-kern.
|
1.20 |
| 24-Jun-2010 |
hannken | Clean up vnode lock operations pass 2:
VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.
Welcome to 5.99.32.
Discussed on tech-kern.
|
1.19 |
| 15-Mar-2009 |
cegger | branches: 1.19.2; 1.19.4; ansify function definitions
|
1.18 |
| 14-Mar-2009 |
dsl | Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
|
1.17 |
| 05-May-2008 |
ad | branches: 1.17.8; 1.17.14; - Convert hashinit() to use kmem_alloc(). The hash tables can be large and it's better to not have them in kmem_map. - Convert a couple of minor items along the way to kmem_alloc(). - Fix some memory leaks.
|
1.16 |
| 30-Jan-2008 |
ad | branches: 1.16.6; 1.16.8; 1.16.10; Replace struct lock on vnodes with a simpler lock object built on krwlock_t. This is a step towards removing lockmgr and simplifying vnode locking. Discussed on tech-kern.
|
1.15 |
| 17-Jan-2008 |
ad | Fix dodgy tests of v_usecount.
|
1.14 |
| 04-Jan-2008 |
ad | Start detangling lock.h from intr.h. This is likely to cause short term breakage, but the mess of dependencies has been regularly breaking the build recently anyhow.
|
1.13 |
| 02-Jan-2008 |
ad | Merge vmlocking2 to head.
|
1.12 |
| 26-Nov-2007 |
pooka | branches: 1.12.2; 1.12.6; Remove the "struct lwp *" argument from all VFS and VOP interfaces. The general trend is to remove it from all kernel interfaces and this is a start. In case the calling lwp is desired, curlwp should be used.
quick consensus on tech-kern
|
1.11 |
| 24-Sep-2007 |
rumble | branches: 1.11.4; Avoid stack allocation of large dirent structures in foo_readdir().
|
1.10 |
| 30-Jun-2007 |
pooka | branches: 1.10.6; 1.10.8; 1.10.10; Using POOL_INIT here makes no sense, since file systems always have an init method. So get rid of it and #ifdef _LKM and just always init in the init method. Give malloc types the same treatment. Makes file systems nicer to work with in linksetless environments and fixes a few LKM discrepancies.
|
1.9 |
| 13-Mar-2007 |
ad | Pass an ipl argument to pool_init/POOL_INIT to be used when initializing the pool's lock.
|
1.8 |
| 20-Feb-2007 |
ad | branches: 1.8.4; 1.8.6; Call genfs_node_destroy() where appropriate.
|
1.7 |
| 11-Dec-2005 |
christos | branches: 1.7.26; merge ktrace-lwp.
|
1.6 |
| 26-Feb-2005 |
perry | branches: 1.6.4; nuke trailing whitespace
|
1.5 |
| 20-May-2004 |
atatat | branches: 1.5.4; 1.5.6; Explicitly call pool_init() (and pool_destroy()) when being built as an _LKM.
This adds pools to the list of things that lkms must do manually because they're set up with link sets. Not that there's anything wrong with link sets, but that we need to try harder to remember that lkms are second class citizens. Of a sort.
|
1.4 |
| 25-Apr-2004 |
simonb | Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
1.3 |
| 27-Mar-2004 |
atatat | Manually attach malloc types when being built as an lkm.
|
1.2 |
| 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.1 |
| 23-Dec-2002 |
jdolecek | branches: 1.1.2; 1.1.4; move filecorefs code from sys/filecorefs to sys/fs/filecorefs
|
1.1.4.7 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.1.4.6 |
| 27-Oct-2004 |
skrll | Fix various comments that describe the argument structures
|
1.1.4.5 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.1.4.4 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.1.4.3 |
| 24-Aug-2004 |
skrll | 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.1.4.2 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.1.4.1 |
| 03-Jul-2003 |
wrstuden | LWP-ify filecore fs.
Note: These changes suffer from the same cnp->cn_lwp issue noted for ufs. They will need to get fixed at the same time as ufs. The fix is to add struct lwp * as a parameter to some VOPs.
Also, some how or another, this code missed out on the changes to use genfs_lease_check, and had a dangling reference to lease_check(). Given that genfs_lease_check has been around since 1998, I'm puzzled as to what's been going on. Noticed in a compild of acorn32/GENERIC.
|
1.1.2.2 |
| 29-Dec-2002 |
thorpej | With with HEAD.
|
1.1.2.1 |
| 23-Dec-2002 |
thorpej | file filecore_node.c was added on branch nathanw_sa on 2002-12-29 19:55:51 +0000
|
1.5.6.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.5.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.6.4.7 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.6.4.6 |
| 21-Jan-2008 |
yamt | sync with head
|
1.6.4.5 |
| 07-Dec-2007 |
yamt | sync with head
|
1.6.4.4 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.6.4.3 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.6.4.2 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.6.4.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.7.26.2 |
| 24-Mar-2007 |
yamt | sync with head.
|
1.7.26.1 |
| 27-Feb-2007 |
yamt | - sync with head. - move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
|
1.8.6.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.8.4.5 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.8.4.4 |
| 16-Sep-2007 |
ad | Checkpoint work in progress on the vnode lifecycle and reference counting stuff. This makes it work properly without kernel_lock and fixes a few quite old bugs. See vfs_subr.c 1.283.2.17 for details.
|
1.8.4.3 |
| 20-Aug-2007 |
ad | Sync with HEAD.
|
1.8.4.2 |
| 15-Jul-2007 |
ad | Sync with head.
|
1.8.4.1 |
| 13-Mar-2007 |
ad | Sync with head.
|
1.10.10.1 |
| 06-Oct-2007 |
yamt | sync with head.
|
1.10.8.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.10.8.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.10.8.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.10.6.2 |
| 27-Nov-2007 |
joerg | Sync with HEAD. amd64 Xen support needs testing.
|
1.10.6.1 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
1.11.4.2 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.11.4.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.12.6.3 |
| 19-Jan-2008 |
bouyer | Sync with HEAD
|
1.12.6.2 |
| 08-Jan-2008 |
bouyer | Sync with HEAD
|
1.12.6.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.12.2.1 |
| 04-Dec-2007 |
ad | Pull the vmlocking changes into a new branch.
|
1.16.10.3 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.16.10.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.16.10.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.16.8.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.16.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.17.14.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.17.8.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.19.4.4 |
| 31-May-2011 |
rmind | sync with head
|
1.19.4.3 |
| 05-Mar-2011 |
rmind | sync with head
|
1.19.4.2 |
| 03-Jul-2010 |
rmind | sync with head
|
1.19.4.1 |
| 16-Mar-2010 |
rmind | Change struct uvm_object::vmobjlock to be dynamically allocated with mutex_obj_alloc(). It allows us to share the locks among UVM objects.
|
1.19.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.22.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.24.2.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.25.16.1 |
| 18-May-2014 |
rmind | sync with head
|
1.25.12.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.25.12.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.25.2.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.27.4.1 |
| 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.27.2.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.27.2.1 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
1.28.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|