diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-04-27 20:46:09 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-27 20:46:09 +0200 |
| commit | 45019310b8c9647a6a2acd9825ecce529fb91ab4 (patch) | |
| tree | ce52e9211fb2021d4416776ca45a73cf8a44925b | |
| parent | 9c634f95bf1d1f5d41af774acb7c29b3c200cf7a (diff) | |
| parent | adebad1dce19299c3c4f59d9f93d82af16abdfa9 (diff) | |
| download | rust-45019310b8c9647a6a2acd9825ecce529fb91ab4.tar.gz rust-45019310b8c9647a6a2acd9825ecce529fb91ab4.zip | |
Rollup merge of #124443 - tbu-:pr_statx_enosys_comment, r=workingjubilee
Elaborate in comment about `statx` probe As requested by `@workingjubilee` in https://github.com/rust-lang/rust/pull/123928#discussion_r1564916743.
| -rw-r--r-- | library/std/src/sys/pal/unix/fs.rs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/library/std/src/sys/pal/unix/fs.rs b/library/std/src/sys/pal/unix/fs.rs index 3456155509e..c37332ac6b1 100644 --- a/library/std/src/sys/pal/unix/fs.rs +++ b/library/std/src/sys/pal/unix/fs.rs @@ -198,20 +198,16 @@ cfg_has_statx! {{ return Some(Err(err)); } - // `ENOSYS` might come from a faulty FUSE driver. - // - // Other errors are not a good enough indicator either -- it is - // known that `EPERM` can be returned as a result of using seccomp to - // block the syscall. + // We're not yet entirely sure whether `statx` is usable on this kernel + // or not. Syscalls can return errors from things other than the kernel + // per se, e.g. `EPERM` can be returned if seccomp is used to block the + // syscall, or `ENOSYS` might be returned from a faulty FUSE driver. // // Availability is checked by performing a call which expects `EFAULT` // if the syscall is usable. // // See: https://github.com/rust-lang/rust/issues/65662 // - // FIXME this can probably just do the call if `EPERM` was received, but - // previous iteration of the code checked it for all errors and for now - // this is retained. // FIXME what about transient conditions like `ENOMEM`? let err2 = cvt(statx(0, ptr::null(), 0, libc::STATX_ALL, ptr::null_mut())) .err() |
