# Re: \[PATCH v2 20/26\] block: Add bio\_for\_each\_segment\_all()

- From: Tejun Heo \<hidden\>
- Date: 2012-09-21 00:35:30 
- List: linux-bcache
- Page: https://ratatoskr.run/linux-bcache/2012/09/3926605
- Thread: https://ratatoskr.run/linux-bcache/2012/09/3920950/t.md

```text
Hello,

On Mon, Sep 10, 2012 at 05:22:31PM -0700, Kent Overstreet wrote:
> This is part of the immutable bvec prep work; bio_for_each_segment() is
> going to have a different implementation so these need to be split
> apart.
>
> This change is also to better document the intent of code that's using
> it - bio_for_each_segment_all() is only legal to use for code that owns
> the bio.

How about something like following?

 __bio_for_each_segment() iterates bvecs from the specified index
 instead of bio->bv_idx.  Currently, the only usage is to walk all the
 bvecs after the bio has been advanced by specifying 0 index.

 To help immutable bvec implementation, replace it with
 bio_for_each_segment_all() which also better documents the intent of
 code that's using it.  Note that bio_for_each_segment_all() should
 only be used by the code which owns the bio.

-- 
tejun
```
