| Age | Commit message (Collapse) | Author |
|
in a row, and we need to try to read the next block, and have passed a
non-NULL cookie pointer to VOP_READDIR, ensure that we free the cookie
buffer before re-doing VOP_READDIR, so that we don't leak memory.
This fix is similar to nfs_serv.c revisions 1.115 + 1.124.
This should fix the long-standing problem observed by e.g. using Linux-
emulated programs to take backup of servers, which is one of the problems
which were reported in PR#42661.
Thanks to pooka@ for the hints for traversing the VOP* layer.
|
|
with a version based on puffs. User functionality remains the same.
|
|
unsigned long.
|
|
- Use cached curlwp->l_fd, instead of p->p_fd.
- Inline selscan/pollscan.
|
|
Onno van der Linden. Also, remove redundant arguments (seems that
was_zombie was not used since rev 1.177 ?).
|
|
EINVAL when file descriptor does not refer to a directory.
|
|
|
|
of timeval (rides the uvm bump).
|
|
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
|
|
- Allow querying current personality.
- Use symbolic names instead of magic values.
|
|
|
|
|
|
Proposed on tech-kern@.
|
|
|
|
before comparison.
|
|
This makes sem_open/sem_unlink (POSIX named semaphores) work under
NPTL emulation.
|
|
|
|
we no longer need to guard against access from hardware interrupt handlers.
Additionally, if cloning a process with CLONE_SIGHAND, arrange to have the
child process share the parent's lock so that signal state may be kept in
sync. Partially addresses PR kern/37437.
|
|
|
|
No functional changes expected.
|
|
1.173 for details.
|
|
- Move uid16 functions to their own file linux_uid16.c, included by
needed archs (arm, i386 and m68k).
- Add new MI types linux_{u,g}id16_t.
- Add macros to handle linux_uid16_t and uid_t conversions.
- Add linux_sys_getres{uid,gid}16 syscalls, to fix an overflow with
bad sizes given to copyout when linux_sys_getres{uid,gid} are used.
- Update arm syscall table to use more uid16 functions.
|
|
|
|
- Replace getfsuid, which never existed on Linux, by correct setfsgid
syscall.
ok by christos and dsl.
|
|
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
|
|
All by the magic of sed ...
|
|
|
|
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
|
|
old_uname and oldold_uname syscalls to ensure that all *utsname fields
are always NUL terminated.
|
|
for ones without arguments), and replace them by their 32-bit
equivalent linux32_sys_xxxx().
|
|
- Add needed COMPAT_OSSAUDIO to GENERIC.
- Add missing includes needed by linux_syscallargs.h.
- Add lkm building.
|
|
Linux compat. Add code to enforce alignment of the new location.
Special thanks to wizd for helping with the man page.
|
|
So don't bother limiting the local arrays to NGROUPS, just use 16.
|
|
|
|
Cloned from ibcs2 copy (maybe I should have worked out somewhere to put this
as common code...)
|
|
|
|
|
|
|
|
|
|
- delete the machine sysctl that never worked, and gc linux_machine.
|
|
|
|
and 'rusage' without having to copy data to/from stackgap buffers.
The old split (find_stopped_child) could be removed.
amd64 seems to run netbsd32, linux and linux32 emulations. sparc64 compiles.
|
|
|
|
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.
|
|
- Move bsd_to_linux_statfs() function to its own file to be shared
between both linux compats.
ok by manu.
|
|
some applications seem to want.
|
|
- Do not use statfs64/fstatfs64 as they have an extra size argument.
- Add full 64bit linux struct statfs support.
ok by manu
|
|
|
|
|
|
|