I got some time to do some more self-review and I spotted one redundant piece of code in this patch related to VM_FAULT_ERROR handling. So I have resent as version 5. Uh.. is there something fundamentally wrong with this patch ?