On Fri, Sep 29, 2023 at 10:27:07AM +0000, John Garry wrote:
We rely the block layer always being able to send a bio of size
atomic_write_unit_max without being required to split it due to request
queue or other bio limits.
A bio may contain min(BIO_MAX_VECS, limits->max_segments) vectors,
and each vector is at worst case the device logical block size from
direct IO alignment requirement.
Both unit_max and unit_min are applied to FS bio, which is built over
single userspace buffer, so only the 1st and last vector can include
partial page, and the other vectors should always cover whole page,
then the minimal size could be:
(max_segments - 2) * PAGE_SIZE + 2 * queue_logical_block_size(q)
Thanks,
Ming