On Sun, Dec 19, 2021 at 02:12:04PM -0800, Linus Torvalds wrote:
On Sun, Dec 19, 2021 at 2:02 PM Matthew Wilcox willy@infradead.org wrote:
I'd like to get rid of ->mapcount for file pages too. And those are definitely never mapped in the majority of cases.
Fair enough.
You'd probably be better off checking "is this mapping mapped" though. Because otherwise you have to get the page lock to serialize each page.
Truncate already has the page locked, eg truncate_inode_pages_range() find_lock_entries() truncate_cleanup_page() if (page_mapped(page)) unmap_mapping_page(page)
I think anyone calling unmap_mapping_page() really ought to have the page lock. Oh, we actually have an assert already to that effect ;-) VM_BUG_ON(!PageLocked(page));