Dave Hansen wrote: > > +repeat: > > + page = find_lock_page(mapping, index); > > + if (page) { > > + if (!PageTransHuge(page)) { > > + unlock_page(page); > > + page_cache_release(page); > > + return NULL; > > + } > > + goto found; > > + } > > + > > + page = alloc_pages(gfp_mask & ~gfp_notmask, HPAGE_PMD_ORDER); > > I alluded to this a second ago, but what's wrong with alloc_hugepage()? It's defined only for !CONFIG_NUMA and only inside mm/huge_memory.c. > > +found: > > + wait_on_page_writeback(page); > > + return page; > > +} > > +#endif > > So, I diffed : > > -struct page *grab_cache_page_write_begin(struct address_space > vs. > +struct page *grab_cache_huge_page_write_begin(struct address_space > > They're just to similar to ignore. Please consolidate them somehow. Will do. > > +found: > > + wait_on_page_writeback(page); > > + return page; > > +} > > +#endif > > In grab_cache_page_write_begin(), this "wait" is: > > wait_for_stable_page(page); > > Why is it different here? It was wait_on_page_writeback() in grab_cache_page_write_begin() when I forked it :( See 1d1d1a7 mm: only enforce stable page writes if the backing device requires it Consolidation will fix this. -- Kirill A. Shutemov -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html