Commit 190f4c2c authored by Dmitry Bogdanov's avatar Dmitry Bogdanov Committed by Christoph Hellwig
Browse files

nvmet: fix memory leak of bio integrity



If nvmet receives commands with metadata there is a continuous memory
leak of kmalloc-128 slab or more precisely bio->bi_integrity.

Since commit bf4c89fc ("block: don't call bio_uninit from bio_endio")
each user of bio_init has to use bio_uninit as well. Otherwise the bio
integrity is not getting free. Nvmet uses bio_init for inline bios.

Uninit the inline bio to complete deallocation of integrity in bio.

Fixes: bf4c89fc ("block: don't call bio_uninit from bio_endio")
Signed-off-by: default avatarDmitry Bogdanov <d.bogdanov@yadro.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent ba806c90
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -867,6 +867,8 @@ static inline void nvmet_req_bio_put(struct nvmet_req *req, struct bio *bio)
{
	if (bio != &req->b.inline_bio)
		bio_put(bio);
	else
		bio_uninit(bio);
}

#ifdef CONFIG_NVME_TARGET_TCP_TLS