Looks good. Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx> On 04/10/2019 01:28 PM, jglisse@xxxxxxxxxx wrote: > From: Jérôme Glisse <jglisse@xxxxxxxxxx> > > When bio_add_pc_page() fails in bio_copy_user_iov() we should free > the page we just allocated otherwise we are leaking it. > > Signed-off-by: Jérôme Glisse <jglisse@xxxxxxxxxx> > Cc: Jens Axboe <axboe@xxxxxxxxx> > Cc: linux-block@xxxxxxxxxxxxxxx > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > block/bio.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/block/bio.c b/block/bio.c > index b64cedc7f87c..716510ecd7ff 100644 > --- a/block/bio.c > +++ b/block/bio.c > @@ -1298,8 +1298,11 @@ struct bio *bio_copy_user_iov(struct request_queue *q, > } > } > > - if (bio_add_pc_page(q, bio, page, bytes, offset) < bytes) > + if (bio_add_pc_page(q, bio, page, bytes, offset) < bytes) { > + if (!map_data) > + __free_page(page); > break; > + } > > len -= bytes; > offset = 0; >