• Ming Lei's avatar
    block: bounce: make sure that bvec table is updated · 8f4e80da
    Ming Lei authored
    Block bounce needs to allocate new page for doing IO, and the
    new page has to be updated to bvec table.
    
    Commit 6dc4f100 switches __blk_queue_bounce() to use the new
    bio_for_each_segment_all() interface. Unfortunately the new
    bio_for_each_segment_all() can't be used to update bvec table.
    
    This patch fixes this issue by retrieving bvec from the table
    directly, then the new allocated page can be updated to the bio.
    This way is safe because the cloned bio is single page bvec.
    
    Fixes: 6dc4f100 ("block: allow bio_for_each_segment_all() to iterate over multi-page bvec")
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Omar Sandoval <osandov@fb.com>
    Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    8f4e80da
bounce.c 9.36 KB