summaryrefslogtreecommitdiff
path: root/src/sys/statvfs.rs
diff options
context:
space:
mode:
authorSteve Lau <stevelauc@outlook.com>2022-12-09 11:17:49 +0800
committerSteve Lau <stevelauc@outlook.com>2022-12-09 11:17:49 +0800
commita0e39af194726b0ff77c5f50242b8754a542f6d6 (patch)
tree2165c44ea3adcc1d53b3217fe5235bce06035ff7 /src/sys/statvfs.rs
parent7f18847f4d59390698c62e2fd5a609cef2439673 (diff)
downloadnix-a0e39af194726b0ff77c5f50242b8754a542f6d6.zip
feat: I/O safety for 'sys/statvfs'
Diffstat (limited to 'src/sys/statvfs.rs')
-rw-r--r--src/sys/statvfs.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/sys/statvfs.rs b/src/sys/statvfs.rs
index 8de369f4..c2c86624 100644
--- a/src/sys/statvfs.rs
+++ b/src/sys/statvfs.rs
@@ -3,7 +3,7 @@
//! See [the man pages](https://pubs.opengroup.org/onlinepubs/9699919799/functions/fstatvfs.html)
//! for more details.
use std::mem;
-use std::os::unix::io::AsRawFd;
+use std::os::unix::io::{AsFd, AsRawFd};
use libc::{self, c_ulong};
@@ -146,11 +146,11 @@ pub fn statvfs<P: ?Sized + NixPath>(path: &P) -> Result<Statvfs> {
}
/// Return a `Statvfs` object with information about `fd`
-pub fn fstatvfs<T: AsRawFd>(fd: &T) -> Result<Statvfs> {
+pub fn fstatvfs<Fd: AsFd>(fd: Fd) -> Result<Statvfs> {
unsafe {
Errno::clear();
let mut stat = mem::MaybeUninit::<libc::statvfs>::uninit();
- Errno::result(libc::fstatvfs(fd.as_raw_fd(), stat.as_mut_ptr()))
+ Errno::result(libc::fstatvfs(fd.as_fd().as_raw_fd(), stat.as_mut_ptr()))
.map(|_| Statvfs(stat.assume_init()))
}
}