Home | History | Annotate | Download | only in kern
History log of /src/sys/kern/exec_script.c
RevisionDateAuthorComments
 1.85  06-Dec-2024  riastradh sys/kern/kern_exec.c, exec_*.c: Sprinkle SET_ERROR dtrace probes.

PR kern/58378: Kernel error code origination lacks dtrace probes
 1.84  06-Dec-2024  riastradh sys/kern/kern_exec.c, exec_*.c: Sort includes.

No functional change intended.
 1.83  03-May-2021  fcambus branches: 1.83.20;
Remove duplicate #ifdef block.
 1.82  23-Mar-2020  pgoyette branches: 1.82.8;
Fix typo in comment.
 1.81  23-Mar-2020  ad LK_SHARED is OK for VOP_ACCESS().
 1.80  15-Sep-2019  christos branches: 1.80.2;
adjust for new check_exec signature.
 1.79  27-Jan-2019  pgoyette Merge the [pgoyette-compat] branch
 1.78  03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.77  30-Jun-2018  kre Fix module build.

Options SUIDSCRIPTS and FDSCRIPTS will be off for the module.
If one (or both) should be enabled, add it to CPPFLAGSin the module Makefile.
 1.76  30-Jun-2018  christos defflag {SETUID,FD}SCRIPTS
 1.75  27-Apr-2018  christos branches: 1.75.2;
Canonicalize the interpreter path in #! scripts since check_exec() expects
an absolute path, and we KASSERT if that's not the case later.
 1.74  05-Sep-2014  matt branches: 1.74.18;
Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get
a correctly typed pointer.
 1.73  30-Jun-2014  maxv Reorder two variables and fix some comments.
 1.72  30-Jun-2014  maxv If the interpreter is "", do not keep loading the script (which will later
fail), but return ENOEXEC directly.

ok christos@
 1.71  23-Jun-2014  maxv Use KASSERT() instead of #ifdef(DIAGNOSTIC). Clearer.
 1.70  07-Mar-2014  christos branches: 1.70.2;
c99 initializers for struct execsw
 1.69  21-Feb-2014  maxv Revert rev1.38. The header already begins with EXEC_SCRIPT_MAGIC="#!".
So it can't be ELFMAG="\177ELF" at the same time.

ok christos@
 1.68  17-Feb-2014  maxv Cosmetic; just replace whitespaces by tabs
 1.67  19-Sep-2013  christos exec modules need to be of the exec kind
 1.66  19-Nov-2010  dholland branches: 1.66.8; 1.66.18; 1.66.22;
Introduce struct pathbuf. This is an abstraction to hold a pathname
and the metadata required to interpret it. Callers of namei must now
create a pathbuf and pass it to NDINIT (instead of a string and a
uio_seg), then destroy the pathbuf after the namei session is
complete.

Update all namei call sites accordingly. Add a pathbuf(9) man page and
update namei(9).

The pathbuf interface also now appears in a couple of related
additional places that were passing string/uio_seg pairs that were
later fed into NDINIT. Update other call sites accordingly.
 1.65  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.64  02-May-2010  dholland Remove the nameidata from struct exec_package. It was used only for two
things: passing an argument to check_exec, which is better done explicitly,
and handing back the resolved pathname generated by namei, which we can
make an explicit slot for in struct exec_package instead. While here,
perform some related tidyup, and store the kernel-side copy of the path
to the executable as well as the pointer into userspace. (But the latter
should probably be removed in the future.)
 1.63  19-Nov-2008  ad branches: 1.63.6; 1.63.8;
Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.62  21-Mar-2008  ad branches: 1.62.4; 1.62.10; 1.62.12;
Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.
 1.61  02-Jan-2008  yamt branches: 1.61.6;
use kmem_alloc instead of malloc.
 1.60  31-Dec-2007  ad Remove systrace. Ok core@.
 1.59  14-Dec-2007  pooka nuke the leprechaun from VOP_ACCESS

Paul Lavoie, kern/37542
 1.58  26-Nov-2007  pooka branches: 1.58.2; 1.58.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.57  22-Apr-2007  dsl branches: 1.57.6; 1.57.8; 1.57.14;
Change the way that emulations locate files within the emulation root to
avoid having to allocate space in the 'stackgap'
- which is very LWP unfriendly.
The additional code for non-emulation namei() is trivial, the reduction for
the emulations is massive.
The vnode for a processes emulation root is saved in the cwdi structure
during process exec.
If the emulation root the TRYEMULROOT flag are set, namei() will do an initial
search for absolute pathnames in the emulation root, if that fails it will
retry from the normal root.
".." at the emulation root will always go to the real root, even in the middle
of paths and when expanding symlinks.
Absolute symlinks found using absolute paths in the emulation root will be
relative to the emulation root (so /usr/lib/xxx.so -> /lib/xxx.so links
inside the emulation root don't need changing).
If the root of the emulation would be returned (for an emulation lookup), then
the real root is returned instead (matching the behaviour of emul_lookup,
but being a cheap comparison here) so that programs that scan "../.."
looking for the root dircetory don't loop forever.
The target for symbolic links is no longer mangled (it used to get the
CHECK_ALT_xxx() treatment, so could get /emul/xxx prepended).
CHECK_ALT_xxx() are no more. Most of the change is deleting them, and adding
TRYEMULROOT to the flags to NDINIT().
A lot of the emulation system call stubs could now be deleted.
 1.56  04-Mar-2007  christos branches: 1.56.2; 1.56.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.55  17-Feb-2007  pavel Change the process/lwp flags seen by userland via sysctl back to the
P_*/L_* naming convention, and rename the in-kernel flags to avoid
conflict. (P_ -> PK_, L_ -> LW_ ). Add back the (now unused) LSDEAD
constant.

Restores source compatibility with pre-newlock2 tools like ps or top.

Reviewed by Andrew Doran.
 1.54  09-Feb-2007  ad branches: 1.54.2;
Merge newlock2 to head.
 1.53  20-Dec-2006  elad Remove the third argument from check_exec() and just check for ep_flags
in the exec_package to know if we need to use VERIEXEC_DIRECT or
VERIEXEC_INDIRECT.

Suggested by and okay yamt@
 1.52  26-Jul-2006  dogcow branches: 1.52.4; 1.52.6; 1.52.8;
at the request of elad, as veriexec.h has returned, revert the changes
from 2006-07-25.
 1.51  25-Jul-2006  dogcow mechanically go through and
s,include "veriexec.h",include <sys/verified_exec.h>,
as the former has apparently gone away.
 1.50  24-Jul-2006  elad some fixes:
- adapt to NVERIEXEC in init_sysctl.c.
- we now need "veriexec.h" for NVERIEXEC.
- "opt_verified_exec.h" -> "opt_veriexec.h", and include it only where
it is needed.
 1.49  23-Jul-2006  ad Use the LWP cached credentials where sane.
 1.48  22-Jul-2006  elad deprecate the VERIFIED_EXEC option; now we only need the pseudo-device to
enable it. while here, some config file tweaks.

tons of input from cube@ (thanks!) and okay blymn@.
 1.47  14-May-2006  elad integrate kauth.
 1.46  17-Mar-2006  christos don't use MALLOC with a non-constant size; use malloc instead.
 1.45  11-Dec-2005  christos branches: 1.45.4; 1.45.6; 1.45.8; 1.45.10; 1.45.12;
merge ktrace-lwp.
 1.44  29-Jul-2005  elad #ifdef VERIFIED_EXEC
 1.43  17-Jul-2005  christos catch up with verified exec defopt changes.
 1.42  16-Jul-2005  christos defopt verified_exec.
 1.41  27-Jun-2005  elad branches: 1.41.2;
From marius@openbsd:

Fix an issue when scripts are executed under systrace where the argv[0]
would be normalized, and hence break scripts that depend on how they were
called.
 1.40  26-Jun-2005  elad From marius@openbsd:

Add an exec message so that whenever a set-uid/gid process executes a new
image which we may control, the exec does not go by unnoticed.
 1.39  19-May-2005  elad Some changes in veriexec.

New features:

- Add a veriexec_report() routine to make most reporting consistent and
remove some common code.
- Add 'strict' mode that controls how veriexec behaves.
- Add sysctl knobs:
o kern.veriexec.verbose controls verbosity levels. Value: 0, 1.
o kern.veriexec.strict controls strict level. Values: 0, 1, 2. See
documentation in sysctl(3) for details.
o kern.veriexec.algorithms returns a string with a space separated
list of supported hashing algorithms in veriexec.
- Updated documentation in man pages for sysctl(3) and sysctl(8).

Bug fixes:

- veriexec_removechk(): Code cleanup + handle FINGERPRINT_NOTEVAL
correctly.
- exec_script(): Don't pass 0 as flag when executing a script; use the
defined VERIEXEC_INDIRECT - which is 1. Makes indirect execution
enforcement work.
- Fix some printing formats and types..
 1.38  04-Nov-2004  matt branches: 1.38.10;
Check to see if the script has an ELF header, and if so, return ENOEXEC.
 1.37  21-Apr-2004  itojun kill sprintf, use snprintf
 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  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.34  16-May-2003  itojun use strlcpy. [fixed off-by-one in subr_prop.c]
 1.33  02-Apr-2003  perry grow #! line length -- patch from cgd, fixes PR kern/20112 from Todd Vierling
 1.32  29-Oct-2002  blymn Added support for fingerprinted executables aka verified exec
 1.31  27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.30  12-Nov-2001  lukem branches: 1.30.10;
add RCSIDs
 1.29  15-Jun-2001  thorpej branches: 1.29.2; 1.29.6;
In check_exec(), don't bother checking P_TRACED along with
MNT_NOSUID, just check MNT_NOSUID to clear the S{U,G}ID bits
in the attributes for the vnode we're about to exec.

We now check P_TRACED right before we would actually perform
the s{u,g}id function in the exec code.

This closes a race condition between exec of a setuid binary
and ptrace(2).
 1.28  14-Jun-2001  thorpej Fix a partial construction problem that can cause race conditions
between creation of a file descriptor and close(2) when using kernel
assisted threads. What we do is stick descriptors in the table, but
mark them as "larval". This causes essentially everything to treat
it as a non-existent descriptor, except for fdalloc(), which sees a
filled slot so that it won't (incorrectly) allocate it again. When
a descriptor is fully constructed, the code that has constructed it
marks it as "mature" (which actually clears the "larval" flag), and
things continue to work as normal.

While here, gather all the code that gets a descriptor from the table
into a fd_getfile() function, and call it, rather than having the
same (sometimes incorrect) code copied all over the place.
 1.27  21-Nov-2000  jdolecek branches: 1.27.2;
restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
provide single struct emul per emulation
* elf:
- kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
per emulation and contains pointer to respective probe function
- interp is allocated via MALLOC() rather than on stack
- elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
part of appropriate execsw[] entry
* constify couple of structures
 1.26  03-Aug-2000  thorpej Convert namei pathname buffer allocation to use the pool allocator.
 1.25  01-Aug-2000  thorpej ANSI'ify.
 1.24  27-Jun-2000  mrg remove include of <vm/vm.h>
 1.23  01-Feb-2000  assar branches: 1.23.4;
(exec_script_makecmds): remove declaration of vnops, now in
<sys/file.h>
 1.22  07-May-1999  tv branches: 1.22.2;
FILE_UNUSE wasn't updated in the FDSCRIPTS block.
 1.21  05-May-1999  thorpej Add "use counting" to file entries. When closing a file, and it's reference
count is 0, wait for use count to drain before finishing the close.

This is necessary in order for multiple processes to safely share file
descriptor tables.
 1.20  26-Feb-1999  wrstuden branches: 1.20.2; 1.20.4;
Modify VOP_CLOSE vnode op to always take a locked vnode. Change vn_close
to pass down a locked node. Modify union_copyup() to call VOP_CLOSE
locked nodes.

Also fix a bug in union_copyup() where a lock on the lower vnode would
only be released if VOP_OPEN didn't fail.
 1.19  01-Mar-1998  fvdl Merge with Lite2 + local changes
 1.18  08-Jul-1997  christos Make this work for SETUIDSCRIPTS:
- include <sys/stat.h> for S_ISUID, S_ISGID
- fix bug where shortcut to fail would use uninitialized variables.
- elide other warnings.
 1.17  08-May-1997  mycroft va_mode contains stat bits. Use S_IS[UG]ID rather than VS[UG]ID.
 1.16  13-Oct-1996  christos backout previous kprintf change
 1.15  10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.14  30-Sep-1996  cgd exec vnode locking protocol changes: in a nutshell, don't keep vnodes
locked for any longer than we have to.
 1.13  04-Feb-1996  christos branches: 1.13.4;
First pass at prototyping
 1.12  10-Apr-1995  mycroft Change `fdclose' to `fdrelease', to avoid confusion with device interfaces.
 1.11  09-Mar-1995  mycroft copy*str() should use size_t.
 1.10  04-Dec-1994  mycroft Use common fdclose() rather than a private version.
 1.9  24-Jul-1994  cgd only use variables which are defined.
 1.8  29-Jun-1994  cgd branches: 1.8.2;
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
 1.7  08-Jun-1994  mycroft Update to 4.4-Lite fs code.
 1.6  24-May-1994  cgd MIN -> min, MAX -> max
 1.5  29-Apr-1994  cgd kill an FDSCRIPTS bug which nobody had found yet.
 1.4  16-Feb-1994  cgd simplify error returns, and fix bugs
 1.3  28-Jan-1994  jtc Fix spelling error in Copyright notice
 1.2  22-Jan-1994  cgd don't forget to free old pathname buffer
 1.1  16-Jan-1994  cgd clean up, break script handling out of check_exec(), and comment a bit.
 1.8.2.1  24-Jul-1994  cgd from trunk.
 1.13.4.1  11-Dec-1996  mycroft From trunk:
Change the exec locking protocol to fix a deadlock.
 1.20.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.20.2.2  19-Jul-2001  perry Pull-up patch requested by Luke Mewburn.

Original commit message:

In check_exec(), don't bother checking P_TRACED along with
MNT_NOSUID, just check MNT_NOSUID to clear the S{U,G}ID bits
in the attributes for the vnode we're about to exec.

We now check P_TRACED right before we would actually perform
the s{u,g}id function in the exec code.

This closes a race condition between exec of a setuid binary
and ptrace(2).
 1.20.2.1  01-Feb-2000  he Pull up revision 1.23 (requested by assar):
Move the declaration of `vnops' to a header file, for the
benefit of LKMs.
 1.22.2.2  22-Nov-2000  bouyer Sync with HEAD.
 1.22.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.23.4.1  16-Jun-2001  he Pull up revision 1.29 (requested by thorpej):
Close a race condition between exec of a setuid binary and
ptrace(2): check P_TRACED right before adjusting the privilege
settings in the exec code.
 1.27.2.4  11-Nov-2002  nathanw Catch up to -current
 1.27.2.3  18-Oct-2002  nathanw Catch up to -current.
 1.27.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.27.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.29.6.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.29.2.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.29.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.30.10.1  17-Aug-2003  tron Pull up revision 1.33 (requested by tv in ticket #1424):
grow #! line length -- patch from cgd, fixes PR kern/20112 from Todd Vierling
 1.36.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.36.2.6  31-Jan-2005  skrll Adapt to branch.
 1.36.2.5  14-Nov-2004  skrll Sync with HEAD.
 1.36.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.36.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.36.2.2  03-Aug-2004  skrll Sync with HEAD
 1.36.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.38.10.7  08-Sep-2005  tron Apply patch (requested by elad in ticket #740):
Defopt VERIFIED_EXEC.
 1.38.10.6  23-Aug-2005  tron Backout ticket 685. It causes build failures.
 1.38.10.5  23-Aug-2005  tron Pull up revision 1.43 (requested by elad in ticket #685):
catch up with verified exec defopt changes.
 1.38.10.4  23-Aug-2005  tron Pull up revision 1.42 (requested by elad in ticket #685):
defopt verified_exec.
 1.38.10.3  02-Jul-2005  tron Backout revision (requested by elad in ticket #487):
Backout systrace related changes. Only the the verified exec subsystem
fix which was accidentally committed with these changes should have been
pulled up.
 1.38.10.2  02-Jul-2005  tron Pull up revision 1.40 (requested by elad in ticket #487):
From marius@openbsd:
Add an exec message so that whenever a set-uid/gid process executes a new
image which we may control, the exec does not go by unnoticed.
 1.38.10.1  10-Jun-2005  tron Pull up revision 1.39 (requested by elad in ticket #389):
Some changes in veriexec.
New features:
- Add a veriexec_report() routine to make most reporting consistent and
remove some common code.
- Add 'strict' mode that controls how veriexec behaves.
- Add sysctl knobs:
o kern.veriexec.verbose controls verbosity levels. Value: 0, 1.
o kern.veriexec.strict controls strict level. Values: 0, 1, 2. See
documentation in sysctl(3) for details.
o kern.veriexec.algorithms returns a string with a space separated
list of supported hashing algorithms in veriexec.
- Updated documentation in man pages for sysctl(3) and sysctl(8).
Bug fixes:
- veriexec_removechk(): Code cleanup + handle FINGERPRINT_NOTEVAL
correctly.
- exec_script(): Don't pass 0 as flag when executing a script; use the
defined VERIEXEC_INDIRECT - which is 1. Makes indirect execution
enforcement work.
- Fix some printing formats and types..
 1.41.2.7  24-Mar-2008  yamt sync with head.
 1.41.2.6  21-Jan-2008  yamt sync with head
 1.41.2.5  07-Dec-2007  yamt sync with head
 1.41.2.4  03-Sep-2007  yamt sync with head.
 1.41.2.3  26-Feb-2007  yamt sync with head.
 1.41.2.2  30-Dec-2006  yamt sync with head.
 1.41.2.1  21-Jun-2006  yamt sync with head.
 1.45.12.2  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.45.12.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.45.10.2  19-Apr-2006  elad sync with head.
 1.45.10.1  08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.45.8.3  11-Aug-2006  yamt sync with head
 1.45.8.2  24-May-2006  yamt sync with head.
 1.45.8.1  01-Apr-2006  yamt sync with head.
 1.45.6.2  01-Jun-2006  kardel Sync with head.
 1.45.6.1  22-Apr-2006  simonb Sync with head.
 1.45.4.1  09-Sep-2006  rpaulo sync with head
 1.52.8.1  21-Dec-2006  tron Pull up following revision(s) (requested by elad in ticket #294):
sys/kern/exec_script.c: revision 1.53
sys/kern/kern_exec.c: revision 1.233
sys/sys/exec.h: revision 1.115
Remove the third argument from check_exec() and just check for ep_flags
in the exec_package to know if we need to use VERIEXEC_DIRECT or
VERIEXEC_INDIRECT.
Suggested by and okay yamt@
 1.52.6.1  21-Dec-2006  yamt sync with head.
 1.52.4.2  12-Jan-2007  ad Sync with head.
 1.52.4.1  17-Nov-2006  ad Checkpoint work in progress.
 1.54.2.3  07-May-2007  yamt sync with head.
 1.54.2.2  12-Mar-2007  rmind Sync with HEAD.
 1.54.2.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.56.4.1  11-Jul-2007  mjf Sync with head.
 1.56.2.1  08-Jun-2007  ad Sync with head.
 1.57.14.3  18-Feb-2008  mjf Sync with HEAD.
 1.57.14.2  27-Dec-2007  mjf Sync with HEAD.
 1.57.14.1  08-Dec-2007  mjf Sync with HEAD.
 1.57.8.1  09-Jan-2008  matt sync with HEAD
 1.57.6.1  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.58.6.1  02-Jan-2008  bouyer Sync with HEAD
 1.58.2.1  26-Dec-2007  ad Sync with head.
 1.61.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.61.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.62.12.1  19-Jan-2009  skrll Sync with HEAD.
 1.62.10.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.62.4.2  11-Aug-2010  yamt sync with head.
 1.62.4.1  04-May-2009  yamt sync with head.
 1.63.8.3  05-Mar-2011  rmind sync with head
 1.63.8.2  03-Jul-2010  rmind sync with head
 1.63.8.1  30-May-2010  rmind sync with head
 1.63.6.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.66.22.1  18-May-2014  rmind sync with head
 1.66.18.2  03-Dec-2017  jdolecek update from HEAD
 1.66.18.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.66.8.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.70.2.1  10-Aug-2014  tls Rebase.
 1.74.18.3  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.74.18.2  28-Jul-2018  pgoyette Sync with HEAD
 1.74.18.1  02-May-2018  pgoyette Synch with HEAD
 1.75.2.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.75.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.75.2.1  10-Jun-2019  christos Sync with HEAD
 1.80.2.1  17-Jan-2020  ad LK_SHARED for VOP_ACCESS().
 1.82.8.1  13-May-2021  thorpej Sync with HEAD.
 1.83.20.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed