#3223·seastar

为什么 sanitize_iovecs 会截短到对齐大小?

作者: travisdowns创建于 2026年1月28日更新于 2026年9月10日

size_t sanitize_iovecs(std::vector &iov, size_t disk_alignment) noexcept { if (iov.size() > IOV_MAX) { iov.resize(IOV_MAX); } auto length = iovec_len(iov); while (auto rest = length & (disk_alignment - 1)) { if (iov.back().iov_len <= rest) { length -= iov.back().iov_len; iov.pop_back(); } else { iov.back().iov_len -= rest; length -= rest; } } return length; }

内容来源: scylladb/seastar