![]() | |||||||||||
Messages in this thread |
On Sat, 5 Nov 2005, Paul Jackson wrote: > > The comment in mm/mempolicy.c for alloc_page_vma() states: > > Should be called with the mm_sem of the vma hold. > > However it seems that the call chain (#ifdef CONFIG_NUMA): > > shmem_getpage ==> shmem_alloc_page ==> alloc_page_vma > > where shmem_getpage() is called from many of the mm/shmem.c file > operations, is called without holding mmap_sem. There is no > mention of mmap_sem in the entire mm/shmem.c file. It's safe but horrid. Look closer and you'll find there isn't even an mm to hold the mmap_sem of. The struct vm_area_struct is on the stack of shmem_alloc_page, and exists solely to apply mempolicy to a shmem file via an interface designed for mempolicy on vmas. So far as I know, it works fine; but that interface really ought to be redesigned some time - it looks like a quick hack that stuck. Hugh - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||
| Last update: 2005-11-06 07:00 [from the cache] ©2003-2008 | |||||||||||