mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
block: fix bmd->is_null_mapped initialization
bmd is allocated using kmalloc in bio_alloc_map_data, so make sure
is_null_mapped is properly initialized to false for the !null_mapped
case.
Fixes: f3256075ba
("block: remove the BIO_NULL_MAPPED flag")
Reported-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
f952eefe74
commit
0385971754
@@ -148,6 +148,7 @@ static int bio_copy_user_iov(struct request *rq, struct rq_map_data *map_data,
|
|||||||
* shortlived one.
|
* shortlived one.
|
||||||
*/
|
*/
|
||||||
bmd->is_our_pages = !map_data;
|
bmd->is_our_pages = !map_data;
|
||||||
|
bmd->is_null_mapped = (map_data && map_data->null_mapped);
|
||||||
|
|
||||||
nr_pages = DIV_ROUND_UP(offset + len, PAGE_SIZE);
|
nr_pages = DIV_ROUND_UP(offset + len, PAGE_SIZE);
|
||||||
if (nr_pages > BIO_MAX_PAGES)
|
if (nr_pages > BIO_MAX_PAGES)
|
||||||
@@ -218,8 +219,6 @@ static int bio_copy_user_iov(struct request *rq, struct rq_map_data *map_data,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bio->bi_private = bmd;
|
bio->bi_private = bmd;
|
||||||
if (map_data && map_data->null_mapped)
|
|
||||||
bmd->is_null_mapped = true;
|
|
||||||
|
|
||||||
bounce_bio = bio;
|
bounce_bio = bio;
|
||||||
ret = blk_rq_append_bio(rq, &bounce_bio);
|
ret = blk_rq_append_bio(rq, &bounce_bio);
|
||||||
|
Reference in New Issue
Block a user