X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=fs%2Fbio.c;h=84da88539046fa21a6db865454db135df40be080;hb=35d5d48d82b20babe4cb9812795dc16ab3a7398d;hp=e453924036e96dac3583854cfd45e40699567cfb;hpb=f00e9b11863abdb837e555a2b1e3417e8b5d80dd;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);