On Wed, Apr 21, 2021 at 05:37:33PM -0700, Hugh Dickins wrote: > - if (!xa_is_value(page) && PageTransHuge(page)) > - xas_set(&xas, page->index + thp_nr_pages(page)); > + if (!xa_is_value(page) && PageTransHuge(page)) { > + unsigned int nr_pages = thp_nr_pages(page); > + > + /* Final THP may cross MAX_LFS_FILESIZE on 32-bit */ > + xas_set(&xas, page->index + nr_pages); > + if (xas.xa_index < nr_pages) > + break; > + } Aargh. We really need to get the multi-index support in; this works perfectly when the xas_set() hack isn't needed any more.