summaryrefslogtreecommitdiffstats
path: root/block/blk-map.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2020-09-23 17:07:13 +0200
committerJens Axboe <axboe@kernel.dk>2020-09-23 17:18:39 +0200
commit0385971754f0aa0507ecd7f0a0f4a48781906eda (patch)
treef75049f052338e26a4d1520fa8d031f7815dce07 /block/blk-map.c
parentblock: drop double zeroing (diff)
downloadlinux-0385971754f0aa0507ecd7f0a0f4a48781906eda.tar.xz
linux-0385971754f0aa0507ecd7f0a0f4a48781906eda.zip
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: f3256075ba49 ("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>
Diffstat (limited to 'block/blk-map.c')
-rw-r--r--block/blk-map.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/block/blk-map.c b/block/blk-map.c
index be118926ccf4..21630dccac62 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -148,6 +148,7 @@ static int bio_copy_user_iov(struct request *rq, struct rq_map_data *map_data,
* shortlived one.
*/
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);
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;
- if (map_data && map_data->null_mapped)
- bmd->is_null_mapped = true;
bounce_bio = bio;
ret = blk_rq_append_bio(rq, &bounce_bio);