On Fri, Dec 01, 2023 at 04:10:45PM +0000, Ryan Roberts wrote: > The THP machinery does not support order-1 folios because it requires > meta data spanning the first 3 `struct page`s. So order-2 is the > smallest large folio that we can safely create. > > There was a theoretical bug whereby if ra->size was 2 or 3 pages (due to > the device-specific bdi->ra_pages being set that way), we could end up > with order = 1. Fix this by unconditionally checking if the preferred > order is 1 and if so, set it to 0. Previously this was done in a few > specific places, but with this refactoring it is done just once, > unconditionally, at the end of the calculation. > > This is a theoretical bug found during review of the code; I have no > evidence to suggest this manifests in the real world (I expect all > device-specific ra_pages values are much bigger than 3). > > Signed-off-by: Ryan Roberts <ryan.roberts@xxxxxxx> It's better code anyway! Reviewed-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>