Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1416401
| From | Shaun Tancheff <shaun@tancheff.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH] Missing bio_put following submit_bio_wait |
| Date | 2016-06-07 18:40 +0200 |
| Message-ID | <rHscN-51h-13@gated-at.bofh.it> (permalink) |
| References | <rHs38-4Y1-25@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
submit_bio_wait() gives the caller an opportunity to examine
struct bio and so expects the caller to issue the put_bio()
This fixes a memory leak reported by a few people in 4.7-rc2
kmemleak report after 9082e87bfbf8 ("block: remove struct bio_batch")
Signed-off-by: Shaun Tancheff <shaun.tancheff@seagate.com>
Tested-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Larry Finger@lwfinger.net
Tested-by: David Drysdale <drysdale@google.com>
---
block/blk-lib.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
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;
}
--
2.8.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH] Fix reported kmemleak Shaun Tancheff <shaun@tancheff.com> - 2016-06-07 18:30 +0200
[PATCH] Missing bio_put following submit_bio_wait Shaun Tancheff <shaun@tancheff.com> - 2016-06-07 18:40 +0200
Re: [PATCH] Missing bio_put following submit_bio_wait Christoph Hellwig <hch@lst.de> - 2016-06-07 18:50 +0200
Re: [PATCH] Missing bio_put following submit_bio_wait Jens Axboe <axboe@kernel.dk> - 2016-06-07 18:50 +0200
csiph-web