X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fbio.c;h=4fc4dbb079a98cae2ba0d198d41497ffb5f3cd70;hb=edea8d0998c2b2bdade2b6c44fa6fac27ecfd2b7;hp=b1fe82cf88cfe0864a2d9603b713f8caacecde4e;hpb=c7f46b7aa4ae5cbef32eb5e016512a14f936affa;p=pandora-kernel.git diff --git a/fs/bio.c b/fs/bio.c index b1fe82cf88cf..4fc4dbb079a9 100644 --- a/fs/bio.c +++ b/fs/bio.c @@ -507,11 +507,12 @@ int bio_get_nr_vecs(struct block_device *bdev) struct request_queue *q = bdev_get_queue(bdev); int nr_pages; - nr_pages = ((queue_max_sectors(q) << 9) + PAGE_SIZE - 1) >> PAGE_SHIFT; - if (nr_pages > queue_max_segments(q)) - nr_pages = queue_max_segments(q); + nr_pages = min_t(unsigned, + queue_max_segments(q), + queue_max_sectors(q) / (PAGE_SIZE >> 9) + 1); + + return min_t(unsigned, nr_pages, BIO_MAX_PAGES); - return nr_pages; } EXPORT_SYMBOL(bio_get_nr_vecs);