Re: [PATCH] aoe: adjust ref of head for compound page tails

From: Andrew Morton
Date: Wed Aug 07 2013 - 19:51:30 EST


On Wed, 7 Aug 2013 19:41:48 -0400 Ed Cashin <ecashin@xxxxxxxxxx> wrote:

> On Aug 7, 2013, at 5:27 PM, Andrew Morton wrote:
>
> >> elevated refcount, full stop.
> >>
> >
> > err, no. slab.c uses alloc_pages(), so the underlying page indeed has
> > a proper refcount. I'm still not understanding how this situation comes
> > about.
>
> It sounds like it's wrong to give block pages with a zero count,

Depends on your definition of "page". It should be OK to put a
_count==0 tail page into a BIO, because the MM knows that it's a tail
page and that its refcount actually lives in the head page.

> so why not just have aoe BUG_ON(compound_trans_head(bv->page->_count) == 0) until we're sure nobody does that anymore?

AOE shouldn't be touching ->_count at all. That's why it has the
leading underscore. If AOE can stick with the usual interfaces such as
page_count(), everything should work?


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