Thread (39 messages) 39 messages, 2 authors, 2017-03-03

Re: [PATCH v2 09/13] md: raid1: use bio_segments_all()

From: Shaohua Li <shli@kernel.org>
Date: 2017-03-02 18:07:07
Also in: linux-block

On Thu, Mar 02, 2017 at 10:34:25AM +0800, Ming Lei wrote:
Hi Shaohua,

On Wed, Mar 1, 2017 at 7:42 AM, Shaohua Li [off-list ref] wrote:
quoted
On Tue, Feb 28, 2017 at 11:41:39PM +0800, Ming Lei wrote:
quoted
Use this helper, instead of direct access to .bi_vcnt.
what We really need to do for the behind IO is:
- allocate memory and copy bio data to the memory
- let behind bio do IO against the memory

The behind bio doesn't need to have the exactly same bio_vec setting. If we
just track the new memory, we don't need use the bio_segments_all and access
bio_vec too.
But we need to figure out how many vecs(each vec store one page) to be
allocated for the cloned/behind bio, and that is the only value of
bio_segments_all() here. Or you have idea to avoid that?
As I said, the behind bio doesn't need to have the exactly same bio_vec
setting. We just allocate memory and copy original bio data to the memory,
then do IO against the new memory. The behind bio
segments == (bio->bi_iter.bi_size + PAGE_SIZE - 1) >> PAGE_SHIFT

Thanks,
Shaohua
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help