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: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
2d3c627502
commit
34f2fd8dfe
2
fs/bio.c
2
fs/bio.c
|
@ -601,7 +601,7 @@ EXPORT_SYMBOL(bio_get_nr_vecs);
|
|||
|
||||
static int __bio_add_page(struct request_queue *q, struct bio *bio, struct page
|
||||
*page, unsigned int len, unsigned int offset,
|
||||
unsigned short max_sectors)
|
||||
unsigned int max_sectors)
|
||||
{
|
||||
int retried_segments = 0;
|
||||
struct bio_vec *bvec;
|
||||
|
|
Loading…
Reference in New Issue