#
7abe0df2 |
| 09-Jun-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Enhance vfs.ino64_trunc_error sysctl.
Provide a new mode "2" which returns a special overflow indicator in the non-representable field instead of the silent truncation (mode "0") or EOVERFLOW (mode
Enhance vfs.ino64_trunc_error sysctl.
Provide a new mode "2" which returns a special overflow indicator in the non-representable field instead of the silent truncation (mode "0") or EOVERFLOW (mode "1").
In particular, the typical use of st_ino to detect hard links with mode "2" reports false positives, which might be more suitable for some uses.
Discussed with: bde Sponsored by: The FreeBSD Foundation
show more ...
|
#
3df7ebc4 |
| 05-Jun-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Add sysctl vfs.ino64_trunc_error controlling action on truncating inode number or link count for the ABI compat binaries.
Right now, and by default after the change, too large 64bit values are silen
Add sysctl vfs.ino64_trunc_error controlling action on truncating inode number or link count for the ABI compat binaries.
Right now, and by default after the change, too large 64bit values are silently truncated to 32 bits. Enabling the knob causes the system to return EOVERFLOW for stat(2) family of compat syscalls when some values cannot be completely represented by the old structures. For getdirentries(2), knob skips the dirents which would cause non-trivial truncation of d_ino.
EOVERFLOW error is specified by the X/Open 1996 LFS document ('Adding Support for Arbitrary File Sizes to the Single UNIX Specification').
Based on the discussion with: bde Sponsored by: The FreeBSD Foundation
show more ...
|
#
d02c951f |
| 26-May-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r318658 through r318963.
|
#
69921123 |
| 23-May-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Commit the 64-bit inode project.
Extend the ino_t, dev_t, nlink_t types to 64-bit ints. Modify struct dirent layout to add d_off, increase the size of d_fileno to 64-bits, increase the size of d_na
Commit the 64-bit inode project.
Extend the ino_t, dev_t, nlink_t types to 64-bit ints. Modify struct dirent layout to add d_off, increase the size of d_fileno to 64-bits, increase the size of d_namlen to 16-bits, and change the required alignment. Increase struct statfs f_mntfromname[] and f_mntonname[] array length MNAMELEN to 1024.
ABI breakage is mitigated by providing compatibility using versioned symbols, ingenious use of the existing padding in structures, and by employing other tricks. Unfortunately, not everything can be fixed, especially outside the base system. For instance, third-party APIs which pass struct stat around are broken in backward and forward incompatible ways.
Kinfo sysctl MIBs ABI is changed in backward-compatible way, but there is no general mechanism to handle other sysctl MIBS which return structures where the layout has changed. It was considered that the breakage is either in the management interfaces, where we usually allow ABI slip, or is not important.
Struct xvnode changed layout, no compat shims are provided.
For struct xtty, dev_t tty device member was reduced to uint32_t. It was decided that keeping ABI compat in this case is more useful than reporting 64-bit dev_t, for the sake of pstat.
Update note: strictly follow the instructions in UPDATING. Build and install the new kernel with COMPAT_FREEBSD11 option enabled, then reboot, and only then install new world.
Credits: The 64-bit inode project, also known as ino64, started life many years ago as a project by Gleb Kurtsou (gleb). Kirk McKusick (mckusick) then picked up and updated the patch, and acted as a flag-waver. Feedback, suggestions, and discussions were carried by Ed Maste (emaste), John Baldwin (jhb), Jilles Tjoelker (jilles), and Rick Macklem (rmacklem). Kris Moore (kris) performed an initial ports investigation followed by an exp-run by Antoine Brodin (antoine). Essential and all-embracing testing was done by Peter Holm (pho). The heavy lifting of coordinating all these efforts and bringing the project to completion were done by Konstantin Belousov (kib).
Sponsored by: The FreeBSD Foundation (emaste, kib) Differential revision: https://reviews.freebsd.org/D10439
show more ...
|
#
7e1b7636 |
| 08-May-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r317808 through r317970.
|
#
f19351aa |
| 05-May-2017 |
Brooks Davis <brooks@FreeBSD.org> |
Provide a freebsd32 implementation of sigqueue()
The previous misuse of sys_sigqueue() was sending random register or stack garbage to 64-bit targets. The freebsd32 implementation preserves the siv
Provide a freebsd32 implementation of sigqueue()
The previous misuse of sys_sigqueue() was sending random register or stack garbage to 64-bit targets. The freebsd32 implementation preserves the sival_int member of value when signaling a 64-bit process.
Document the mixed ABI implementation of union sigval and the incompability of sival_ptr with pointer integrity schemes.
Reviewed by: kib, wblock MFC after: 1 week Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D10605
show more ...
|
#
3f8455b0 |
| 19-Mar-2017 |
Eric van Gyzen <vangyzen@FreeBSD.org> |
Add clock_nanosleep()
Add a clock_nanosleep() syscall, as specified by POSIX. Make nanosleep() a wrapper around it.
Attach the clock_nanosleep test from NetBSD. Adjust it for the FreeBSD behavior o
Add clock_nanosleep()
Add a clock_nanosleep() syscall, as specified by POSIX. Make nanosleep() a wrapper around it.
Attach the clock_nanosleep test from NetBSD. Adjust it for the FreeBSD behavior of updating rmtp only when interrupted by a signal. I believe this to be POSIX-compliant, since POSIX mentions the rmtp parameter only in the paragraph about EINTR. This is also what Linux does. (NetBSD updates rmtp unconditionally.)
Copy the whole nanosleep.2 man page from NetBSD because it is complete and closely resembles the POSIX description. Edit, polish, and reword it a bit, being sure to keep any relevant text from the FreeBSD page.
Reviewed by: kib, ngie, jilles MFC after: 3 weeks Relnotes: yes Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D10020
show more ...
|
#
4cf66812 |
| 18-Mar-2017 |
Eric van Gyzen <vangyzen@FreeBSD.org> |
nanosleep: plug a kernel memory disclosure
nanosleep() updates rmtp on EINVAL. In that case, kern_nanosleep() has not updated rmt, so sys_nanosleep() updates the user-space rmtp by copying garbage
nanosleep: plug a kernel memory disclosure
nanosleep() updates rmtp on EINVAL. In that case, kern_nanosleep() has not updated rmt, so sys_nanosleep() updates the user-space rmtp by copying garbage from its stack frame. This is not only a kernel memory disclosure, it's also not POSIX-compliant. Fix it to update rmtp only on EINTR.
Reviewed by: jilles (via D10020), dchagin MFC after: 3 days Security: possibly Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D10044
show more ...
|
#
01feb4c3 |
| 14-Mar-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Use designated initializers for kevent_copyops.
Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
a3906ca5 |
| 17-Feb-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r313644 through r313895.
|
#
496ab053 |
| 13-Feb-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Rework r313352.
Rename kern_vm_* functions to kern_*. Move the prototypes to syscallsubr.h. Also change Mach VM types to uintptr_t/size_t as needed, to avoid headers pollution.
Requested by: alc,
Rework r313352.
Rename kern_vm_* functions to kern_*. Move the prototypes to syscallsubr.h. Also change Mach VM types to uintptr_t/size_t as needed, to avoid headers pollution.
Requested by: alc, jhb Reviewed by: alc Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D9535
show more ...
|
#
995b8f4f |
| 13-Feb-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Style: wrap long line.
Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
1a36faad |
| 11-Feb-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r313301 through r313643.
|
#
15df32b4 |
| 07-Feb-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r313360
|
#
69cdfcef |
| 06-Feb-2017 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add kern_vm_mmap2(), kern_vm_mprotect(), kern_vm_msync(), kern_vm_munlock(), kern_vm_munmap(), and kern_vm_madvise(), and use them in various compats instead of their sys_*() counterparts.
Reviewed
Add kern_vm_mmap2(), kern_vm_mprotect(), kern_vm_msync(), kern_vm_munlock(), kern_vm_munmap(), and kern_vm_madvise(), and use them in various compats instead of their sys_*() counterparts.
Reviewed by: ed, dchagin, kib MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D9378
show more ...
|
#
f9edb084 |
| 05-Feb-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r313055 through r313300.
|
#
96ee4310 |
| 05-Feb-2017 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add kern_cpuset_getaffinity() and kern_cpuset_getaffinity(), and use it in compats instead of their sys_*() counterparts.
Reviewed by: kib, jhb, dchagin MFC after: 2 weeks Sponsored by: DARPA, AFRL
Add kern_cpuset_getaffinity() and kern_cpuset_getaffinity(), and use it in compats instead of their sys_*() counterparts.
Reviewed by: kib, jhb, dchagin MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D9383
show more ...
|
#
9b3ece1c |
| 04-Feb-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r313243
|
#
71fe94fd |
| 01-Feb-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r312968 through r313054.
|
#
b38b22b0 |
| 31-Jan-2017 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add kern_pread() and kern_pwrite(), and use it in compats instead of their sys_*() counterparts. The svr4 is left unchanged.
Reviewed by: kib@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differenti
Add kern_pread() and kern_pwrite(), and use it in compats instead of their sys_*() counterparts. The svr4 is left unchanged.
Reviewed by: kib@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D9379
show more ...
|
#
fc8bde8f |
| 31-Jan-2017 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Replace calls to sys_truncate() with kern_truncate().
Reviewed by: kib@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D9371
|
#
ea2ebdc1 |
| 31-Jan-2017 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add kern_cpuset_getid() and kern_cpuset_setid(), and use them in compat32 instead of their sub_*() counterparts.
Reviewed by: jhb@, kib@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Rev
Add kern_cpuset_getid() and kern_cpuset_setid(), and use them in compat32 instead of their sub_*() counterparts.
Reviewed by: jhb@, kib@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D9382
show more ...
|
#
f67d6b5f |
| 30-Jan-2017 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add kern_lseek() and use it instead of sys_lseek() in various compats. I didn't touch svr4/, there's no point.
Reviewed by: ed@, kib@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revisi
Add kern_lseek() and use it instead of sys_lseek() in various compats. I didn't touch svr4/, there's no point.
Reviewed by: ed@, kib@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D9366
show more ...
|
#
ae6b6ef6 |
| 30-Jan-2017 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Replace sys_ftruncate() with kern_ftruncate() in various compats.
Reviewed by: kib@ MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D9368
|
#
2b532af8 |
| 05-Jan-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r311314 through r311459.
|