lkml.org 
[lkml]   [2002]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject14/19
    From
    Some fields in the duplicated bio weren't being set up properly in
    __split_page(). [Kevin Corry]
    --- diff/drivers/md/dm.c 2002-12-16 09:41:21.000000000 +0000
    +++ source/drivers/md/dm.c 2002-12-16 09:41:25.000000000 +0000
    @@ -337,7 +337,7 @@
    {
    struct dm_target *ti = dm_table_find_target(ci->md->map, ci->sector);
    struct bio *clone, *bio = ci->bio;
    - struct bio_vec *bv = bio->bi_io_vec + (bio->bi_vcnt - 1);
    + struct bio_vec *bv = bio->bi_io_vec + ci->idx;

    DMWARN("splitting page");

    @@ -349,11 +349,13 @@

    clone->bi_sector = ci->sector;
    clone->bi_bdev = bio->bi_bdev;
    - clone->bi_flags = bio->bi_flags | (1 << BIO_SEG_VALID);
    clone->bi_rw = bio->bi_rw;
    + clone->bi_vcnt = 1;
    clone->bi_size = len << SECTOR_SHIFT;
    clone->bi_end_io = clone_endio;
    clone->bi_private = ci->io;
    + clone->bi_io_vec->bv_offset = bv->bv_len - clone->bi_size;
    + clone->bi_io_vec->bv_len = clone->bi_size;

    ci->sector += len;
    ci->sector_count -= len;
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-03-22 13:31    [W:0.021 / U:33.048 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site