Dave Hansen wrote: > On 05/11/2013 06:23 PM, Kirill A. Shutemov wrote: > > From: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx> > > > > replace_page_cache_page() is only used by FUSE. It's unlikely that we > > will support THP in FUSE page cache any soon. > > > > Let's pospone implemetation of THP handling in replace_page_cache_page() > > until any will use it. > ... > > diff --git a/mm/filemap.c b/mm/filemap.c > > index 657ce82..3a03426 100644 > > --- a/mm/filemap.c > > +++ b/mm/filemap.c > > @@ -428,6 +428,8 @@ int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask) > > { > > int error; > > > > + VM_BUG_ON(PageTransHuge(old)); > > + VM_BUG_ON(PageTransHuge(new)); > > VM_BUG_ON(!PageLocked(old)); > > VM_BUG_ON(!PageLocked(new)); > > VM_BUG_ON(new->mapping); > > The code calling replace_page_cache_page() has a bunch of fallback and > error returning code. It seems a little bit silly to bring the whole > machine down when you could just WARN_ONCE() and return an error code > like fuse already does: What about: if (WARN_ONCE(PageTransHuge(old) || PageTransHuge(new), "%s: unexpected huge page\n", __func__)) return -EINVAL; ? -- 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