lkml.org 
[lkml]   [2009]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 14/43] dm io: respect BIO_MAX_PAGES limit
    2.6.28-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Mikulas Patocka <mpatocka@redhat.com>

    commit d659e6cc98766a1a61d6bdd283f95d149abd7719 upstream.

    dm-io calls bio_get_nr_vecs to get the maximum number of pages to use
    for a given device. It allocates one additional bio_vec to use
    internally but failed to respect BIO_MAX_PAGES, so fix this.

    This was the likely cause of:
    https://bugzilla.redhat.com/show_bug.cgi?id=173153

    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Alasdair G Kergon <agk@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/md/dm-io.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/drivers/md/dm-io.c
    +++ b/drivers/md/dm-io.c
    @@ -292,6 +292,8 @@ static void do_region(int rw, unsigned r
    (PAGE_SIZE >> SECTOR_SHIFT));
    num_bvecs = 1 + min_t(int, bio_get_nr_vecs(where->bdev),
    num_bvecs);
    + if (unlikely(num_bvecs > BIO_MAX_PAGES))
    + num_bvecs = BIO_MAX_PAGES;
    bio = bio_alloc_bioset(GFP_NOIO, num_bvecs, io->client->bios);
    bio->bi_sector = where->sector + (where->count - remaining);
    bio->bi_bdev = where->bdev;



    \
     
     \ /
      Last update: 2009-03-21 00:37    [W:0.023 / U:31.860 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site