提交 5fdd2cf8 编写于 作者: M majianpeng 提交者: NeilBrown

md/raid10: Fix memleak in r10buf_pool_alloc

If the allocation of rep1_bio fails, we currently don't free the 'bio'
of the same dev.

Reported by kmemleak.
Signed-off-by: Nmajianpeng <majianpeng@gmail.com>
Signed-off-by: NNeilBrown <neilb@suse.de>
上级 da8840a7
...@@ -173,9 +173,10 @@ static void * r10buf_pool_alloc(gfp_t gfp_flags, void *data) ...@@ -173,9 +173,10 @@ static void * r10buf_pool_alloc(gfp_t gfp_flags, void *data)
while (j--) while (j--)
for (i = 0; i < RESYNC_PAGES ; i++) for (i = 0; i < RESYNC_PAGES ; i++)
safe_put_page(r10_bio->devs[j].bio->bi_io_vec[i].bv_page); safe_put_page(r10_bio->devs[j].bio->bi_io_vec[i].bv_page);
j = -1; j = 0;
out_free_bio: out_free_bio:
while (++j < nalloc) { for ( ; j < nalloc; j++) {
if (r10_bio->devs[j].bio)
bio_put(r10_bio->devs[j].bio); bio_put(r10_bio->devs[j].bio);
if (r10_bio->devs[j].repl_bio) if (r10_bio->devs[j].repl_bio)
bio_put(r10_bio->devs[j].repl_bio); bio_put(r10_bio->devs[j].repl_bio);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册