Commit 34f2fd8d authored by Akinobu Mita's avatar Akinobu Mita Committed by Jens Axboe

bio: fix argument of __bio_add_page() for max_sectors > 0xffff

The data type of max_sectors and max_hw_sectors in queue settings are
unsigned int.  But these values are passed to __bio_add_page() as an
argument whose data type is unsigned short.  In the worst case such as
max_sectors is 0x10000, bio_add_page() can't add a page and IOs can't
proceed.

Cc: Jens Axboe <axboe@kernel.dk>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 2d3c6275
...@@ -601,7 +601,7 @@ EXPORT_SYMBOL(bio_get_nr_vecs); ...@@ -601,7 +601,7 @@ EXPORT_SYMBOL(bio_get_nr_vecs);
static int __bio_add_page(struct request_queue *q, struct bio *bio, struct page static int __bio_add_page(struct request_queue *q, struct bio *bio, struct page
*page, unsigned int len, unsigned int offset, *page, unsigned int len, unsigned int offset,
unsigned short max_sectors) unsigned int max_sectors)
{ {
int retried_segments = 0; int retried_segments = 0;
struct bio_vec *bvec; struct bio_vec *bvec;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment