The way we did that in BirliX is to "copy on read" and "fold on store back"). I.e., when a page is not needed any more in main memory, the pager is asked to either store it as is it or to reestablish cow sharing. But a bit complicated and requires cooperation of pagers. --hermann