rust/library
Dylan DPC 3e1e9b4866
Rollup merge of #94446 - rusticstuff:remove_dir_all-illumos-fix, r=cuviper
UNIX `remove_dir_all()`: Try recursing first on the slow path

This only affects the _slow_ code path - if there is no `dirent.d_type` or if it is `DT_UNKNOWN`.

POSIX specifies that calling `unlink()` or `unlinkat(..., 0)` on a directory is allowed to succeed:
> The _path_ argument shall not name a directory unless the process has appropriate privileges and the implementation supports using _unlink()_ on directories.

This however can cause dangling inodes requiring an fsck e.g. on Illumos UFS, so we have to avoid that in the common case. We now just try to recurse into it first and unlink() if we can't open it as a directory.

The other two commits integrate the Macos x86-64 implementation reducing redundancy. Split into two commits for better reviewing.

Fixes #94335.
2022-03-05 04:46:37 +01:00
..
alloc Rollup merge of #92399 - Veeupup:fix_vec_typo, r=Dylan-DPC 2022-02-28 20:05:13 +01:00
backtrace@b02ed04a7e
core Auto merge of #94628 - Dylan-DPC:rollup-v2slupe, r=Dylan-DPC 2022-03-05 00:15:54 +00:00
panic_abort
panic_unwind
portable-simd Fix unused_doc_comments lint errors 2022-03-02 20:06:35 +01:00
proc_macro
profiler_builtins
rtstartup
rustc-std-workspace-alloc
rustc-std-workspace-core
rustc-std-workspace-std
std Rollup merge of #94446 - rusticstuff:remove_dir_all-illumos-fix, r=cuviper 2022-03-05 04:46:37 +01:00
stdarch@bcbe010614 Update stdarch submodule 2022-03-02 20:06:46 +01:00
test Switch bootstrap cfgs 2022-02-25 08:00:52 -05:00
unwind library/unwind: Define unwinder_private_data_size for m68k 2022-02-12 20:21:10 +00:00