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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]