Subject: Re: CVS commit: src/sys
To: David Laight <dsl@netbsd.org>
From: Bill Stouder-Studenmund <wrstuden@netbsd.org>
List: source-changes
Date: 04/22/2007 16:36:09
--ZGiS0Q5IWpPtfppv
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Apr 22, 2007 at 08:30:02AM +0000, David Laight wrote:
>=20
> Module Name:	src
> Committed By:	dsl
> Date:		Sun Apr 22 08:30:02 UTC 2007
>=20
> Modified Files:
> 	src/sys/arch/arm/arm: arm_machdep.c
> 	src/sys/compat/aoutm68k: aoutm68k_stat.c
> 	src/sys/compat/common: compat_file.c compat_util.c compat_util.h
> 	    vfs_syscalls_20.c vfs_syscalls_30.c vfs_syscalls_43.c
> 	src/sys/compat/darwin: darwin_attr.c darwin_mount.c darwin_stat.c
> 	src/sys/compat/freebsd: freebsd_exec_elf32.c freebsd_file.c
> 	src/sys/compat/hpux: hpux_compat.c hpux_exec.c hpux_file.c
> 	src/sys/compat/ibcs2: ibcs2_exec.c ibcs2_exec_coff.c ibcs2_exec_elf32.c
> 	    ibcs2_fcntl.c ibcs2_misc.c ibcs2_stat.c
> 	src/sys/compat/irix: irix_exec_elf32.c irix_mount.c irix_stat.c
> 	src/sys/compat/linux/common: linux_exec.c linux_exec_elf32.c
> 	    linux_file.c linux_file64.c linux_misc.c linux_misc_notalpha.c
> 	    linux_uselib.c
> 	src/sys/compat/linux32/common: linux32_exec_elf32.c linux32_misc.c
> 	    linux32_stat.c linux32_time.c linux32_unistd.c
> 	src/sys/compat/mach: mach_exec.c
> 	src/sys/compat/netbsd32: netbsd32_compat_12.c netbsd32_compat_20.c
> 	    netbsd32_compat_30.c netbsd32_compat_43.c netbsd32_exec_elf32.c
> 	    netbsd32_execve.c netbsd32_fs.c netbsd32_netbsd.c
> 	src/sys/compat/osf1: osf1_exec_ecoff.c osf1_file.c osf1_mount.c
> 	src/sys/compat/pecoff: pecoff_exec.c pecoff_misc.c
> 	src/sys/compat/sunos: sunos_misc.c
> 	src/sys/compat/sunos32: sunos32.h sunos32_misc.c
> 	src/sys/compat/svr4: svr4_exec_elf32.c svr4_exec_elf64.c svr4_fcntl.c
> 	    svr4_misc.c svr4_stat.c
> 	src/sys/compat/svr4_32: svr4_32_exec_elf32.c svr4_32_fcntl.c
> 	    svr4_32_misc.c svr4_32_stat.c
> 	src/sys/compat/ultrix: ultrix_pathname.c
> 	src/sys/kern: exec_elf32.c exec_script.c kern_acct.c kern_descrip.c
> 	    kern_exec.c uipc_usrreq.c vfs_lookup.c vfs_syscalls.c vfs_vnops.c
> 	src/sys/lkm/compat: Makefile.inc
> 	src/sys/lkm/compat/freebsd: Makefile
> 	src/sys/lkm/compat/linux: Makefile
> 	src/sys/lkm/compat/pecoff: Makefile
> 	src/sys/lkm/compat/svr4: Makefile
> 	src/sys/nfs: nfs_subs.c
> 	src/sys/sys: exec.h filedesc.h namei.h
> 	src/sys/uvm: uvm_swap.c
>=20
> Log Message:
> 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 f=
or
>   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 in=
itial
>   search for absolute pathnames in the emulation root, if that fails it w=
ill
>   retry from the normal root.
> ".." at the emulation root will always go to the real root, even in the m=
iddle
>   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_looku=
p,
>   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 add=
ing
>   TRYEMULROOT to the flags to NDINIT().
> A lot of the emulation system call stubs could now be deleted.

Why didn't you submit these changes to tech-kern for review? Anything this=
=20
big really needs to be looked at before checking in.

Take care,

Bill

--ZGiS0Q5IWpPtfppv
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (NetBSD)

iD8DBQFGK/FpWz+3JHUci9cRAp7xAJ9CxJu+v+VV67KzFJg+xd4m8tE3dgCfdF0G
ar4LF8SXS6iL7fBfGBlUvX0=
=57cv
-----END PGP SIGNATURE-----

--ZGiS0Q5IWpPtfppv--