Home | History | Annotate | Download | only in unionfs
History log of /src/sys/fs/unionfs/unionfs_subr.c
RevisionDateAuthorComments
 1.16  11-Sep-2022  christos catch up; make this compile again.
 1.15  29-Jun-2021  dholland Now remove cn_consume from struct componentname.

This change requires a kernel bump.

Note though that I'm not going to version the VOP_LOOKUP args
structure (or any other args structure) as code that doesn't touch
cn_consume doesn't need attention and code that does will fail on it
without further intervention.
 1.14  01-Jun-2017  chs branches: 1.14.26;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.
 1.13  12-Jun-2011  rmind branches: 1.13.12; 1.13.30;
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.12  02-Jan-2011  dholland branches: 1.12.6;
Remove the special refcount behavior (adding an extra reference to the
parent dir) associated with SAVESTART in relookup().

Check all call sites to make sure that SAVESTART wasn't set while
calling relookup(); if it was, adjust the refcount behavior. Remove
related references to SAVESTART.

The only code that was reaching the extra ref was msdosfs_rename,
where the refcount behavior was already fairly broken and/or gross;
repair it.

Add a dummy 4th argument to relookup to make sure code that hasn't
been inspected won't compile. (This will go away next time the
relookup semantics change, which they will.)
 1.11  30-Nov-2010  dholland Abolish the SAVENAME and HASBUF flags. There is now always a buffer,
so the path in a struct componentname is now always valid during VOP
calls.
 1.10  30-Nov-2010  dholland Abolish struct componentname's cn_pnbuf. Use the path buffer in the
pathbuf object passed to namei as work space instead. (For now a pnbuf
pointer appears in struct nameidata, to support certain unclean things
that haven't been fixed yet, but it will be going away in the future.)

This removes the need for the SAVENAME and HASBUF namei flags.
 1.9  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.8  24-Jun-2010  hannken Clean up vnode lock operations:

- VOP_LOCK(vp, flags): Limit the set of allowed flags to LK_EXCLUSIVE,
LK_SHARED and LK_NOWAIT. LK_INTERLOCK is no longer allowed as it
makes no sense here.

- VOP_ISLOCKED(vp): Remove the for some time unused return value
LK_EXCLOTHER. Mark this operation as "diagnostic only".
Making a lock decision based on this operation is no longer allowed.

Discussed on tech-kern.
 1.7  18-Jun-2010  hannken Remove the concept of recursive vnode locks by eliminating
vn_setrecurse(), vn_restorerecurse() and LK_CANRECURSE.
Welcome to 5.99.31

Discussed on tech-kern.
 1.6  06-Jun-2010  hannken Change layered file systems to always pass the locking VOP's down to the
leaf file system. Remove now unused member v_vnlock from struct vnode.
Welcome to 5.99.30

Discussed on tech-kern.
 1.5  08-Jan-2010  pooka branches: 1.5.2; 1.5.4;
The VATTR_NULL/VREF/VHOLD/HOLDRELE() macros lost their will to live
years ago when the kernel was modified to not alter ABI based on
DIAGNOSTIC, and now just call the respective function interfaces
(in lowercase). Plenty of mix'n match upper/lowercase has creeped
into the tree since then. Nuke the macros and convert all callsites
to lowercase.

no functional change
 1.4  18-Apr-2009  tsutsui Remove extra whitespace added by a stupid tool.
XXX: more in src/sys/arch
 1.3  18-Mar-2009  cegger bcopy -> memcpy
 1.2  18-Mar-2009  cegger bcmp -> memcmp
 1.1  18-Feb-2008  ad branches: 1.1.2; 1.1.10; 1.1.12; 1.1.16; 1.1.24; 1.1.30;
A port of FreeBSD's updated unionfs. This is a work in progress. In
particular, unionfs_lookup() needs a lot of attention.
 1.1.30.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.1.24.1  28-Apr-2009  skrll Sync with HEAD.
 1.1.16.3  11-Aug-2010  yamt sync with head.
 1.1.16.2  11-Mar-2010  yamt sync with head
 1.1.16.1  04-May-2009  yamt sync with head.
 1.1.12.2  23-Mar-2008  matt sync with HEAD
 1.1.12.1  18-Feb-2008  matt file unionfs_subr.c was added on branch matt-armv6 on 2008-03-23 02:04:57 +0000
 1.1.10.2  27-Feb-2008  yamt sync with head.
 1.1.10.1  18-Feb-2008  yamt file unionfs_subr.c was added on branch yamt-lazymbuf on 2008-02-27 08:36:54 +0000
 1.1.2.2  18-Feb-2008  mjf Sync with HEAD.
 1.1.2.1  18-Feb-2008  mjf file unionfs_subr.c was added on branch mjf-devfs on 2008-02-18 21:06:44 +0000
 1.5.4.6  30-May-2011  rmind - Amend getnewvnode(9) to take the lock for sharing, not a vnode.
- Update tmpfs to perform vnode and UVM object lock sharing correctly.
 1.5.4.5  21-May-2011  rmind Finish v_interlock sharing bits for union/unionfs.
 1.5.4.4  19-May-2011  rmind Implement sharing of vnode_t::v_interlock amongst vnodes:
- Lock is shared amongst UVM objects using uvm_obj_setlock() or getnewvnode().
- Adjust vnode cache to handle unsharing, add VI_LOCKSHARE flag for that.
- Use sharing in tmpfs and layerfs for underlying object.
- Simplify locking in ubc_fault().
- Sprinkle some asserts.

Discussed with ad@.
 1.5.4.3  05-Mar-2011  rmind sync with head
 1.5.4.2  03-Jul-2010  rmind sync with head
 1.5.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.5.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.12.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.13.30.1  28-Aug-2017  skrll Sync with HEAD
 1.13.12.1  03-Dec-2017  jdolecek update from HEAD
 1.14.26.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed