[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [dm-devel] [PATCH v5 01/12] block: Generalized bio pool freeing
- From: Kent Overstreet <koverstreet google com>
- To: Tejun Heo <tj kernel org>
- Cc: axboe kernel dk, dm-devel redhat com, linux-kernel vger kernel org, linux-bcache vger kernel org, mpatocka redhat com, vgoyal redhat com, yehuda hq newdream net, sage newdream net, agk redhat com, drbd-dev lists linbit com
- Subject: Re: [dm-devel] [PATCH v5 01/12] block: Generalized bio pool freeing
- Date: Wed, 8 Aug 2012 17:26:53 -0700
On Wed, Aug 08, 2012 at 03:25:15PM -0700, Tejun Heo wrote:
> 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.
Ok, I'll stick a comment in there:
if (atomic_dec_and_test(&bio->bi_cnt)) {
bio_disassociate_task(bio);
bio->bi_next = NULL;
/*
* This if statement is temporary - bi_pool is replacing
* bi_destructor, but bi_destructor will be taken out in another
* patch.
*/
if (bio->bi_pool)
bio_free(bio, bio->bi_pool);
else
bio->bi_destructor(bio);
}
>
> Thanks.
>
> --
> tejun
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]