On Mon, Jun 06, 2016 at 12:09:49PM -0500, Shaun Tancheff wrote: > I'm pretty sure it is missing a bio_put() after submit_bio_wait(). > > Please excuse the hack-y patch but I think you need to do something > like this ... > (Note tabs eaten by gmail). > > diff --git a/block/blk-lib.c b/block/blk-lib.c > index 23d7f30..9e29dc3 100644 > --- a/block/blk-lib.c > +++ b/block/blk-lib.c > @@ -113,6 +113,7 @@ int blkdev_issue_discard(struct block_device > *bdev, sector_t sector, > ret = submit_bio_wait(type, bio); > if (ret == -EOPNOTSUPP) > ret = 0; > + bio_put(bio); > } > blk_finish_plug(&plug); > > @@ -165,8 +166,10 @@ int blkdev_issue_write_same(struct block_device > *bdev, sector_t sector, > } > } > > - if (bio) > + if (bio) { > ret = submit_bio_wait(REQ_WRITE | REQ_WRITE_SAME, bio); > + bio_put(bio); > + } > return ret != -EOPNOTSUPP ? ret : 0; > } > EXPORT_SYMBOL(blkdev_issue_write_same); > @@ -206,8 +209,11 @@ static int __blkdev_issue_zeroout(struct > block_device *bdev, sector_t sector, > } > } > > - if (bio) > - return submit_bio_wait(WRITE, bio); > + if (bio) { > + ret = submit_bio_wait(WRITE, bio); > + bio_put(bio); > + return ret; > + } > return 0; > } This patch appears to fix the memory leak on my machine. Tested-by: Catalin Marinas <catalin.marinas@xxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html