#
d737e9ea |
| 05-Nov-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: hide _fdrop 0 count check behind INVARIANTS
While here use refcount_load and make sure to report the tested value.
|
Revision tags: release/12.2.0 |
|
#
dd28b379 |
| 10-Oct-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: support lockless dirfd lookups
|
#
4e226610 |
| 05-Oct-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
cache: fix pwd use-after-free in setting up fallback
Since the code exits smr section prior to calling pwd_hold, the used pwd can be freed and a new one allocated with the same address, making the c
cache: fix pwd use-after-free in setting up fallback
Since the code exits smr section prior to calling pwd_hold, the used pwd can be freed and a new one allocated with the same address, making the comparison erroneously true.
Note it is very unlikely anyone ran into it.
show more ...
|
#
96474d2a |
| 15-Sep-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Do not copy vp into f_data for DTYPE_VNODE files.
The pointer to vnode is already stored into f_vnode, so f_data can be reused. Fix all found users of f_data for DTYPE_VNODE.
Provide finit_vnode()
Do not copy vp into f_data for DTYPE_VNODE files.
The pointer to vnode is already stored into f_vnode, so f_data can be reused. Fix all found users of f_data for DTYPE_VNODE.
Provide finit_vnode() helper to initialize file of DTYPE_VNODE type.
Reviewed by: markj (previous version) Discussed with: freqlabs (openzfs chunk) Tested by: pho (previous version) Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D26346
show more ...
|
#
54052eda |
| 08-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: fix fhold on an uninitialized var in fdcopy_remapped
Reported by: gcc9
|
#
e2515283 |
| 27-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
cd4a1797 |
| 22-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: pwd_drop after releasing filedesc lock
Fixes a potential LOR against vnode lock.
|
#
c7aa572c |
| 31-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
e914224a |
| 25-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: put back FILEDESC_SUNLOCK to pwd_hold lost during rebase
Reported by: pho
|
#
07d2145a |
| 25-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: add the infrastructure for lockless lookup
Reviewed by: kib Tested by: pho (in a patchset) Differential Revision: https://reviews.freebsd.org/D25577
|
#
e2c0e292 |
| 16-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
d8bc2a17 |
| 15-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: remove fd_lastfile
It keeps recalculated way more often than it is needed.
Provide a routine (fdlastfile) to get it if necessary.
Consumers may be better off with a bitmap iterator instead.
|
#
7177149a |
| 15-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: add obvious branch predictions to fdalloc
|
#
373278a7 |
| 11-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: stop looping in pwd_hold
We don't expect to fail acquiring the reference unless running into a corner case. Just in case ensure forward progress by taking the lock.
Reviewed by: kib, markj Diff
fd: stop looping in pwd_hold
We don't expect to fail acquiring the reference unless running into a corner case. Just in case ensure forward progress by taking the lock.
Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D25616
show more ...
|
#
f2706588 |
| 21-Jun-2020 |
Thomas Munro <tmunro@FreeBSD.org> |
vfs: track sequential reads and writes separately
For software like PostgreSQL and SQLite that sometimes reads sequentially while also writing sequentially some distance behind with interleaved sysc
vfs: track sequential reads and writes separately
For software like PostgreSQL and SQLite that sometimes reads sequentially while also writing sequentially some distance behind with interleaved syscalls on the same fd, performance is better on UFS if we do sequential access heuristics separately for reads and writes.
Patch originally by Andrew Gierth in 2008, updated and proposed by me with his permission.
Reviewed by: mjg, kib, tmunro Approved by: mjg (mentor) Obtained from: Andrew Gierth <andrew@tao11.riddles.org.uk> Differential Revision: https://reviews.freebsd.org/D25024
show more ...
|
Revision tags: release/11.4.0 |
|
#
21d3be91 |
| 27-Apr-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
pwd: unbreak repeated calls to set_rootvnode
Prior to the change the once set pointer would never be updated.
Unbreaks reboot -r.
Reported by: Ross Gohlke
|
#
7d03e081 |
| 14-Apr-2020 |
Kyle Evans <kevans@FreeBSD.org> |
Mark closefrom(2) COMPAT12, reimplement in libc to wrap close_range
Include a temporarily compatibility shim as well for kernels predating close_range, since closefrom is used in some critical areas
Mark closefrom(2) COMPAT12, reimplement in libc to wrap close_range
Include a temporarily compatibility shim as well for kernels predating close_range, since closefrom is used in some critical areas.
Reviewed by: markj (previous version), kib Differential Revision: https://reviews.freebsd.org/D24399
show more ...
|
#
605c4cda |
| 13-Apr-2020 |
Kyle Evans <kevans@FreeBSD.org> |
close_range/closefrom: fix regression from close_range introduction
close_range will clamp the range between [0, fdp->fd_lastfile], but failed to take into account that fdp->fd_lastfile can become -
close_range/closefrom: fix regression from close_range introduction
close_range will clamp the range between [0, fdp->fd_lastfile], but failed to take into account that fdp->fd_lastfile can become -1 if all fds are closed. =-( In this scenario, just return because there's nothing further we can do at the moment.
Add a test case for this, fork() and simply closefrom(0) twice in the child; on the second invocation, fdp->fd_lastfile == -1 and will trigger a panic before this change.
X-MFC-With: r359836
show more ...
|
#
472ced39 |
| 12-Apr-2020 |
Kyle Evans <kevans@FreeBSD.org> |
Implement a close_range(2) syscall
close_range(min, max, flags) allows for a range of descriptors to be closed. The Python folk have indicated that they would much prefer this interface to closefrom
Implement a close_range(2) syscall
close_range(min, max, flags) allows for a range of descriptors to be closed. The Python folk have indicated that they would much prefer this interface to closefrom(2), as the case may be that they/someone have special fds dup'd to higher in the range and they can't necessarily closefrom(min) because they don't want to hit the upper range, but relocating them to lower isn't necessarily feasible.
sys_closefrom has been rewritten to use kern_close_range() using ~0U to indicate closing to the end of the range. This was chosen rather than requiring callers of kern_close_range() to hold FILEDESC_SLOCK across the call to kern_close_range for simplicity.
The flags argument of close_range(2) is currently unused, so any flags set is currently EINVAL. It was added to the interface in Linux so that future flags could be added for, e.g., "halt on first error" and things of this nature.
This patch is based on a syscall of the same design that is expected to be merged into Linux.
Reviewed by: kib, markj, vangyzen (all slightly earlier revisions) Differential Revision: https://reviews.freebsd.org/D21627
show more ...
|
#
429537ca |
| 19-Mar-2020 |
Mark Johnston <markj@FreeBSD.org> |
kern_dup(): Call filecaps_free_prep() in a write section.
filecaps_free_prep() bzeros the capabilities structure and we need to be careful to synchronize with unlocked readers, which expect a consis
kern_dup(): Call filecaps_free_prep() in a write section.
filecaps_free_prep() bzeros the capabilities structure and we need to be careful to synchronize with unlocked readers, which expect a consistent rights structure.
Reviewed by: kib, mjg Reported by: syzbot+5f30b507f91ddedded21@syzkaller.appspotmail.com MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24120
show more ...
|
#
16b90565 |
| 10-Mar-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358731 through r358831.
|
#
d2222aa0 |
| 08-Mar-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: use smr for managing struct pwd
This has a side effect of eliminating filedesc slock/sunlock during path lookup, which in turn removes contention vs concurrent modifications to the fd table.
Re
fd: use smr for managing struct pwd
This has a side effect of eliminating filedesc slock/sunlock during path lookup, which in turn removes contention vs concurrent modifications to the fd table.
Reviewed by: markj, kib Differential Revision: https://reviews.freebsd.org/D23889
show more ...
|
#
e43d33d2 |
| 05-Mar-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358466 through r358677.
|
#
8d03b99b |
| 01-Mar-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: move vnodes out of filedesc into a dedicated structure
The new structure is copy-on-write. With the assumption that path lookups are significantly more frequent than chdirs and chrooting this is
fd: move vnodes out of filedesc into a dedicated structure
The new structure is copy-on-write. With the assumption that path lookups are significantly more frequent than chdirs and chrooting this is a win.
This provides stable root and jail root vnodes without the need to reference them on lookup, which in turn means less work on globally shared structures. Note this also happens to fix a bug where jail vnode was never referenced, meaning subsequent access on lookup could run into use-after-free.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23884
show more ...
|
#
8243063f |
| 01-Mar-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: make fgetvp_rights work without the filedesc lock
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23883
|