I was just reading an lwn article on the introduction of page cache deduplication for EROFS and how that normally isn't possible. Why is it not normally possible? Each file has its own vma doesn't it? So why can't the underlying physical page be shared and the pte marked read only so if you write to one file, it is COWed just like ksm does for anonmymous memory?