From 2ed5cd508d0b893ded6a1ba586f7c6cd7a95cc36 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 14 Jun 2021 14:47:26 -0400 Subject: [PATCH] bcachefs: Fix a memory leak in dio write path Commit c42bca92be928ce7dece5fc04cf68d0e37ee6718 "bio: don't copy bvec for direct IO" changed bio_iov_iter_get_pages() to point bio->bi_iovec at the incoming biovec, meaning if we already allocated one, it'll be leaked. Signed-off-by: Kent Overstreet --- fs/bcachefs/fs-io.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c index 132ff0497b399..e39e22581e4b4 100644 --- a/fs/bcachefs/fs-io.c +++ b/fs/bcachefs/fs-io.c @@ -2025,7 +2025,9 @@ ssize_t bch2_direct_write(struct kiocb *req, struct iov_iter *iter) } bio = bio_alloc_bioset(NULL, - iov_iter_npages(iter, BIO_MAX_VECS), + iov_iter_is_bvec(iter) + ? 0 + : iov_iter_npages(iter, BIO_MAX_VECS), REQ_OP_WRITE, GFP_KERNEL, &c->dio_write_bioset); -- 2.30.2