* 1 reference if the folio has private data (thank you, bufferheads) Oh. Is that the bug? can_split_folio() doesn't know that. This usually isn't a problem because, eg, truncate_inode_partial_folio() will remove the private data before calling split_folio(). But memory-failure doesn't know about that rule ...
The worst thing that could happen is that splitting the folio would fail (because one more unexpected reference), not that we would split where we shouldn't, right?
No, that's not it. shmem doesn't use the folio private flag. It's still a bug, but it's not Jane's bug.
Maybe *something* really accidentally dropped a page reference :/ Reproducer + details would be great.
-- Cheers, David / dhildenb