dm io: respect BIO_MAX_PAGES limit

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Tuesday, March 17, 2009 - 10:00 am

Gitweb:     http://git.kernel.org/linus/d659e6cc98766a1a61d6bdd283f95d149abd7719
Commit:     d659e6cc98766a1a61d6bdd283f95d149abd7719
Parent:     f80a557008462a0a4adef25407f1872e793d8dd5
Author:     Mikulas Patocka <mpatocka@redhat.com>
AuthorDate: Mon Mar 16 17:44:30 2009 +0000
Committer:  Alasdair G Kergon <agk@redhat.com>
CommitDate: Mon Mar 16 17:44:30 2009 +0000

    dm io: respect BIO_MAX_PAGES limit
    
    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
    
    Cc: stable@kernel.org
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Alasdair G Kergon <agk@redhat.com>
---
 drivers/md/dm-io.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c
index f14813b..36e2b5e 100644
--- a/drivers/md/dm-io.c
+++ b/drivers/md/dm-io.c
@@ -292,6 +292,8 @@ static void do_region(int rw, unsigned region, struct dm_io_region *where,
 					     (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;
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
dm io: respect BIO_MAX_PAGES limit, Linux Kernel Mailing ..., (Tue Mar 17, 10:00 am)