Re: [PATCH 2/2] block: Avoid deadlocks with bio allocation by stacking drivers

Tejun Heo
2012-09-10T20:40:19Z

Hello, Kent.

On Mon, Sep 10, 2012 at 01:24:35PM -0700, Kent Overstreet wrote:
> And at that point, why duplicate that line of code? It doesn't matter that
> much, but IMO a goto retry better labels what's actually going on (it's
> something that's not uncommon in the kernel and if I see a retry label
> in a function I pretty immediately have an idea of what's going on).
>
> So we could do
>
> retry:
> p = mempool_alloc(bs->bio_pool, gfp_mask);
> if (!p && gfp_mask != saved_gfp) {
> punt_bios_to_rescuer(bs);
> gfp_mask = saved_gfp;
> goto retry;
> }

Yes, we do retry loops if that makes the code simpler. Doing that to
save one extra alloc call, I don't think so.

Thanks.

--
tejun