On Mon, Nov 27, 2023 at 11:30:21PM +0900, Ryusuke Konishi wrote: > In nilfs_rename(), calls to nilfs_put_page() to release pages obtained > with nilfs_find_entry() or nilfs_dotdot() are alternated in the normal > path. > > When replacing the kernel memory mapping method from kmap to > kmap_local_{page,folio}, this violates the constraint on the calling > order of kunmap_local(). > > Swap the order of nilfs_put_page calls where the kmap sections of > multiple pages overlap so that they are nested, allowing direct > replacement of nilfs_put_page() -> unmap_and_put_page(). > > Without this reordering, that replacement will cause a kernel WARNING > in kunmap_local_indexed() on architectures with high memory mapping. > > Signed-off-by: Ryusuke Konishi <konishi.ryusuke@xxxxxxxxx> > Cc: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Thanks for catching this! Reviewed-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>