• Christoph Hellwig's avatar
    pktcdvd: don't scribble over the bvec array · feebd568
    Christoph Hellwig authored
    Hi Peter, hi Jens,
    
    I've been looking over the multi page bio vec work again recently, and
    one of the stumbling blocks is raw biovec access in the pktcdvd.
    
    The first issue is that it directly sets up the page and offset pointers
    in the biovec just before calling bio_add_page.  As bio_add_page already
    does the setup it's trivial to just switch it to stack variables for the
    arguments.
    
    The second issue is the copy code in pkt_make_local_copy, which
    effectively is an opencoded version of bio_copy_data except that it
    skips pages that already are the same in the ѕource and destination.
    But we look at the only calleer we just set up the bio using bio_add_page
    to point exactly to the page array that pkt_make_local_copy compares,
    so the pages will always be the same and we can just remove this function.
    
    Note that all this is done based on code inspection, I don't have any
    packet writing hardware myself.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    feebd568
pktcdvd.c 72.4 KB