Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > +void end_page_private_2(struct page *page) > > +{ > > + page = compound_head(page); > > + VM_BUG_ON_PAGE(!PagePrivate2(page), page); > > + clear_bit_unlock(PG_private_2, &page->flags); > > + wake_up_page_bit(page, PG_private_2); > > ... but when we try to end on a tail, we actually wake up the head ... Question is, should I remove compound_head() here or add it into the other functions? David