vm_operation to avoid pagefault/inval race
Subsystems (2)
PATCH 1/1 vm_operation to avoid pagefault/inval race
Rediffed to 2.5.70-mm2.
This patch provides one way for a distributed filesystem to avoid the pagefault/cross-node-invalidation race described in:
http://marc.theaimsgroup.com/?l=linux-kernel&m=105286345316249&w=2
The advantage of this patch is that it is quite small and quite well tested. A different approach follows in a separate message.
Thanx, Paul
include/linux/mm.h +1 -0
@@ -143,6 +143,7 @@void (*open)(struct vm_area_struct * area);void (*close)(struct vm_area_struct * area);struct page * (*nopage)(struct vm_area_struct * area,unsigned long address,int unused); +void (*nopagedone)(struct vm_area_struct * area,unsigned long address,int status);int (*populate)(struct vm_area_struct * area,unsigned long address,unsigned long len,pgprot_t prot,unsigned long pgoff,int nonblock); };
mm/memory.c +3 -0
@@ -1468,6 +1468,9 @@ ret =VM_FAULT_OOM ; out:pte_chain_free (pte_chain); +if (vma->vm_ops && vma->vm_ops->nopagedone) { + vma->vm_ops->nopagedone (vma, address &PAGE_MASK , ret); + }return ret; }
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>