On Tue 01-08-17 23:31:38, Daeho Jeong wrote: > > > > We've changed the discard command handling into parallel manner. > > > But, in this change, I forgot decreasing the usage count of the bio > > > which was used to send discard request. I'm sorry about that. > > > > > > Signed-off-by: Daeho Jeong <daeho.jeong@xxxxxxxxxxx> > > > Fixes: a015434480dc ("ext4: send parallel discards on commit > > > completions") > > > Why do you think this is needed? submit_bio_wait() consumes the reference > > that you've got from __blkdev_issue_discard()... > > > > Honza > > Hi Jan, > > I thought like you, but submit_bio_wait() doesn't consume the reference > of the bio and the bio cannot be released after the I/O has been completed. > The caller of submit_bio_wait() should invoke bio_put() in person. > You can see what we have to do after calling submit_bio_wait() in > fs/crypto/bio.c. > > Actually, in our device, I can see that the slab memory grows gradually > because of the unreleased discard bios. Ah, good point. I had a deeper look now and indeed submit_bio_wait() uses it's own end_io function which does not drop the bio reference. So I retract my objection and feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR