Re: [PATCH] block: set bi_vcnt when cloning bio

From: John Garry
Date: Wed Feb 19 2025 - 09:20:02 EST


On 18/02/2025 22:21, Bart Van Assche wrote:
On 2/18/25 9:12 AM, John Garry wrote:
On 18/02/2025 11:40, Andreas Hindborg wrote:
But I am genuinely curious if there is a reason for not setting
`bi_vcnt` during a clone.

I think that it came from commit 59d276fe0 (with the addition of bio_clone_fast()), where we assume that the cloned bio is not having the bio_vec touched and so does not need to know bi_vcnt (or bi_max_vecs). And it is inefficient to needlessly set bi_vcnt then.

Hmm ... I prefer paying the very small performance hit caused by copying
bi_vcnt rather than having to deal with the inconsistency caused by not
copying that data structure member.

From my experience, setting anything which is not strictly necessary in the fastpath code is generally not wanted.

Thanks,
John