On Wed, May 23, 2012 at 05:02:38PM -0700, Kent Overstreet wrote: > With the old code, when you allocate a bio from a bio pool you have to > implement your own destructor that knows how to find the bio pool the > bio was originally allocated from. > > This adds a new field to struct bio (bi_pool) and changes > bio_alloc_bioset() to use it. This makes various bio destructors > unnecessary, so they're then deleted. > [..] > @@ -419,7 +406,11 @@ void bio_put(struct bio *bio) > */ > if (atomic_dec_and_test(&bio->bi_cnt)) { > bio->bi_next = NULL; > - bio->bi_destructor(bio); > + > + if (bio->bi_pool) > + bio_free(bio, bio->bi_pool); > + else > + bio->bi_destructor(bio); If you have removed all the users of bi_destructor, then I am wondering that why are we retaining this field and trying to call into it when bio_pool is not set? Thanks Vivek -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel