block_util: use SmallVec in async adaptor

Also fix a comment while at it.

Signed-off-by: Wei Liu <liuwe@microsoft.com>
This commit is contained in:
Wei Liu 2023-01-29 20:38:51 +00:00 committed by Rob Bradford
parent 4a51a6615f
commit 1325c76525

View File

@ -602,7 +602,7 @@ where
completion_list: &mut VecDeque<(u64, i32)>, completion_list: &mut VecDeque<(u64, i32)>,
) -> AsyncIoResult<()> { ) -> AsyncIoResult<()> {
// Convert libc::iovec into IoSliceMut // Convert libc::iovec into IoSliceMut
let mut slices = Vec::new(); let mut slices: SmallVec<[IoSliceMut; 1]> = SmallVec::with_capacity(iovecs.len());
for iovec in iovecs.iter() { for iovec in iovecs.iter() {
// SAFETY: on Linux IoSliceMut wraps around libc::iovec // SAFETY: on Linux IoSliceMut wraps around libc::iovec
slices.push(IoSliceMut::new(unsafe { std::mem::transmute(*iovec) })); slices.push(IoSliceMut::new(unsafe { std::mem::transmute(*iovec) }));
@ -635,9 +635,9 @@ where
completion_list: &mut VecDeque<(u64, i32)>, completion_list: &mut VecDeque<(u64, i32)>,
) -> AsyncIoResult<()> { ) -> AsyncIoResult<()> {
// Convert libc::iovec into IoSlice // Convert libc::iovec into IoSlice
let mut slices = Vec::new(); let mut slices: SmallVec<[IoSlice; 1]> = SmallVec::with_capacity(iovecs.len());
for iovec in iovecs.iter() { for iovec in iovecs.iter() {
// SAFETY: on Linux IoSliceMut wraps around libc::iovec // SAFETY: on Linux IoSlice wraps around libc::iovec
slices.push(IoSlice::new(unsafe { std::mem::transmute(*iovec) })); slices.push(IoSlice::new(unsafe { std::mem::transmute(*iovec) }));
} }