X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=fs%2Fbio.c;h=84da88539046fa21a6db865454db135df40be080;hb=e2f5db4a0625477194fe5284e89935a3acdfe1b2;hp=e453924036e96dac3583854cfd45e40699567cfb;hpb=9479f0f8018a0317b0b5e0c2b338bec6e26fdf2d;p=cascardo%2Flinux.git diff --git a/fs/bio.c b/fs/bio.c index e453924036e9..84da88539046 100644 --- a/fs/bio.c +++ b/fs/bio.c @@ -505,9 +505,14 @@ EXPORT_SYMBOL(bio_clone); int bio_get_nr_vecs(struct block_device *bdev) { struct request_queue *q = bdev_get_queue(bdev); - return min_t(unsigned, + int nr_pages; + + 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); + } EXPORT_SYMBOL(bio_get_nr_vecs);