On Thu, May 24, 2012 at 03:52:02PM -0400, Vivek Goyal wrote: > On Wed, May 23, 2012 at 05:02:45PM -0700, Kent Overstreet wrote: > > [..] > > @@ -234,6 +234,13 @@ void bio_free(struct bio *bio, struct bio_set *bs) > > { > > void *p; > > > > + if (!bs) { > > + if (bio_integrity(bio)) > > + bio_integrity_free(bio, fs_bio_set); > > + kfree(bio); > > + return; > > + } > > + > > Ok, this seems to be the code which will take care of freeing kmalloced > bio. I think putting little comment about the explicit assumption is not > a bad idea. > > Somehow we need to integrate two patches so that we don't have memory leak > in bisection and reading code becomes easier. > > Also then what's the need of bio_reset() in previous patch. That seems to > be independent from getting rid of pkt_bio_destructor(). I would think > that keep we can split the patch and keep bio_reset() logic in a separate > patch. In fact I am not even sure that for one driver we should introduce > bio_reset() in generic block layer. So to me we should get rid of bio_reset() > and let all the gory details remain in driver. Just noticed bio_kmalloc_destructor() will take care of freeing bio_kmalloc() bios and it has been dropped in this patch. So memory leak point is moot. bio_reset() question still remains though. Thanks Vivek -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel