| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
The traversal behaviour of -j1, -j2, and -jN (N >= 3) are all different
enough to be worth running the whole test suite against them. Sorting
(-s) is another dimension worth testing. Having these tests run
automatically would have caught some recently-fixed bugs earlier.
|
| |
|
|
|
|
|
| |
Rather than attempting to close any unexpected FDs, just count them and
adjust our ulimit -n calls to account for them.
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we hardcoded file descriptors 3 and 4 for duplicating
stdandard output/error respectively. In preparation for keeping
inherited FDs open, switch to using bash's variable redirection feature
to dynamically assign FDs.
This feature is only available from bash 4.1 onwards, so this marks the
end of our support for bash 3. macOS users will need to install a
modern bash version to run our tests.
|
|
|
|
| |
Release builds work now on FreeBSD 14.
|
| |
|
|
|
|
|
|
|
| |
It is undesirable to close a directory that we haven't read yet to free
up cache capacity, but it's worse to fail to open the next directory
because too many upcoming directories are pinned. This could happen
when sorting, because then we can't prioritize the already-opened ones.
|
|
|
|
|
|
|
|
|
| |
When sorting, we can be forced to pop an unopened directory. If enough
other directories are already open, that can lead to ENOMEM when we try
to open it synchronously. To avoid this, force allocations from the
main thread to be attempted even if they would go over the limit.
Also, fix the accounting in bftw_allocdir() if allocation fails.
|
| |
|
| |
|
|
|
|
|
|
| |
Otherwise, bftw_ids() or bftw_eds() might keep going!
Fixes: 5f16169 ("bftw: Share the bftw_state between iterations of ids/eds")
|
| |
|
|
|
|
|
| |
Maintaining balance and strict ordering at the same time forces too much
work onto the main thread.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Using -path 'deep/*/*/.../*' to simulate -mindepth 18 falls off a
performance cliff on systems that use backtracking for fnmatch(). This
was observed on macOS 12.4. Instead, just use -type f.
|
| |
|
|
|
|
|
| |
It's not used on at least macOS, which doesn't have ACL_{USER,GROUP}_OBJ
or ACL_OTHER.
|
| |
|
| |
|
|
|
|
|
|
|
| |
We used to have is_nonexistence_error() to consistently treat ENOENT and
ENOTDIR the same. Recently, we started considering EFAULT the same as
ENAMETOOLONG on DragonFly BSD to work around a kernel bug. Unify both
of these behind a more generic interface.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
POSIX says
> When using the symbolic mode form on a regular file, it is
> implementation-defined whether or not:
>
> - Requests to set the set-user-ID-on-execution or set-group-ID-on-
> execution bit when all execute bits are currently clear and none
> are being set are ignored.
And indeed, illumos ignores them with a warning:
chmod: WARNING: /tmp/bfs.XXXX7KaGWb/rainbow/suid: Execute permission
required for set-ID on execution
Link: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html
|
|
|
|
|
|
| |
Their ACL API is quite a bit different from most.
Link: https://illumos.org/man/2/acl
|
|
|
|
| |
Link: https://illumos.org/man/3SOCKET/bind
|
|
|
|
|
|
| |
Needed for the POSIX-compliant version of some interfaces.
Link: https://illumos.org/man/3C/getpwnam
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Rather than only unary/binary expressions, we now support an arbitrary
number of children. The optimizer has been re-written almost completely
and now supports optimal reordering of longer expression chains, rather
than just arm-swapping.
Fixes #85.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
DragonFly's x86_64 assembly implementation of copyinstr() checks the
wrong pointer when deciding whether to return EFAULT or ENAMETOOLONG,
causing it to always return EFAULT for overlong paths. Work around it
by treating EFAULT the same as ENAMETOOLONG on DragonFly.
Link: https://twitter.com/tavianator/status/1742991411203485713
|
| |
|
|
|
|
| |
DragonFly is missing extattr_get_link() and extattr_list_{file,link}().
|
| |
|
| |
|
|
|
|
|
| |
NetBSD already defines this in <sys/bswap.h>, so pick names that don't
conflict.
|
| |
|
| |
|