Re: Does shmem_getpage==>shmem_alloc_page==>alloc_page_vma hold mmap_sem?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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]
  Powered by Linux