• Kent Overstreet's avatar
    block: Add bio_for_each_segment_all() · efd99ef3
    Kent Overstreet authored
    commit d74c6d51 upstream.
    
    __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.
    
    For immutable bvecs, we need to split these apart;
    bio_for_each_segment() is going to have a different implementation.
    This will also help 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.
    Signed-off-by: default avatarKent Overstreet <koverstreet@google.com>
    CC: Jens Axboe <axboe@kernel.dk>
    CC: Neil Brown <neilb@suse.de>
    CC: Boaz Harrosh <bharrosh@panasas.com>
    [bwh: Backported to 3.2: drop inapplicable change to drivers/block/rbd.c.
     This is a prerequisite for commit 35dc2483 'sg: Fix user memory
     corruption when SG_IO is interrupted by a signal']
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    efd99ef3
ore.c 28.9 KB