Only write what was read during copy, fixes #931

This commit is contained in:
Jeremy Soller 2025-04-10 18:14:24 -06:00
parent 32bda4b585
commit d6f1efbf67
No known key found for this signature in database
GPG key ID: 670FDFB5428E05CA

View file

@ -1,3 +1,4 @@
use compio::buf::{IntoInner, IoBuf};
use compio::io::{AsyncReadAt, AsyncWriteAt};
use compio::BufResult;
use std::future::Future;
@ -295,7 +296,9 @@ impl Op {
}
};
let BufResult(result, buf_out) = to_file.write_at(buf_out, pos).await;
let BufResult(result, buf_out_slice) =
to_file.write_at(buf_out.slice(..count), pos).await;
let buf_out = buf_out_slice.into_inner();
if let Err(why) = result {
ctx.buf = buf_out;