diff --git a/src/hostcalls_impl/fs.rs b/src/hostcalls_impl/fs.rs index ecbfdc5f35..c19ad7144b 100644 --- a/src/hostcalls_impl/fs.rs +++ b/src/hostcalls_impl/fs.rs @@ -779,11 +779,7 @@ pub(crate) fn fd_filestat_set_size( .and_then(|fe| fe.fd_object.descriptor.as_file())?; let st_size = dec_filesize(st_size); - if st_size > i64::max_value() as u64 { - return Err(host::__WASI_E2BIG); - } - - hostcalls_impl::fd_filestat_set_size(fd, st_size) + fd.set_len(st_size).map_err(errno_from_ioerror) } pub(crate) fn path_filestat_get( diff --git a/src/sys/unix/hostcalls_impl/fs.rs b/src/sys/unix/hostcalls_impl/fs.rs index c0e13659dc..cec90c641a 100644 --- a/src/sys/unix/hostcalls_impl/fs.rs +++ b/src/sys/unix/hostcalls_impl/fs.rs @@ -406,12 +406,6 @@ pub(crate) fn fd_filestat_set_times( } } -pub(crate) fn fd_filestat_set_size(fd: &File, st_size: host::__wasi_filesize_t) -> Result<()> { - use nix::unistd::ftruncate; - ftruncate(fd.as_raw_fd(), st_size as off_t) - .map_err(|e| host_impl::errno_from_nix(e.as_errno().unwrap())) -} - pub(crate) fn path_filestat_get( resolved: PathGet, dirflags: host::__wasi_lookupflags_t, diff --git a/src/sys/windows/hostcalls_impl/fs.rs b/src/sys/windows/hostcalls_impl/fs.rs index a375611a0a..2c84f1799d 100644 --- a/src/sys/windows/hostcalls_impl/fs.rs +++ b/src/sys/windows/hostcalls_impl/fs.rs @@ -276,10 +276,6 @@ pub(crate) fn fd_filestat_set_times( unimplemented!("fd_filestat_set_times") } -pub(crate) fn fd_filestat_set_size(fd: &File, st_size: host::__wasi_filesize_t) -> Result<()> { - unimplemented!("fd_filestat_set_size") -} - pub(crate) fn path_filestat_get( resolved: PathGet, dirflags: host::__wasi_lookupflags_t,