| Date | Wed, 8 Aug 2012 15:25:15 -0700 | From | Tejun Heo <> | Subject | Re: [PATCH v5 01/12] block: Generalized bio pool freeing |
| |
On Mon, Aug 06, 2012 at 03:08:30PM -0700, Kent Overstreet wrote: > @@ -422,7 +409,11 @@ void bio_put(struct bio *bio) > if (atomic_dec_and_test(&bio->bi_cnt)) { > bio_disassociate_task(bio); > bio->bi_next = NULL; > - bio->bi_destructor(bio); > + > + if (bio->bi_pool) > + bio_free(bio, bio->bi_pool); > + else > + bio->bi_destructor(bio);
So, this bi_pool overriding caller specified custom bi_destructor is rather unusual. I know why it's like that - the patch series is gradually replacing bi_destructor with bi_pool and removes bi_destructor eventually, but it would be far better if at least patch description says why this is unusual like this.
Thanks.
-- tejun
|