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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to