X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=ipc%2Fshm.c;h=0ef4a1cf3e27246b54a2e31865e85d9ccded7398;hb=f9c5d0451b406a6bd0d0bf1fdd63c7777af6ebc6;hp=587d836d80d9d07f075259d3efe73917413f8010;hpb=b3ce1debe2685383a9ad6ace9c49869c3968c013;p=powerpc.git diff --git a/ipc/shm.c b/ipc/shm.c index 587d836d80..0ef4a1cf3e 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -157,14 +157,22 @@ static void shm_close (struct vm_area_struct *shmd) static int shm_mmap(struct file * file, struct vm_area_struct * vma) { - file_accessed(file); - vma->vm_ops = &shm_vm_ops; - shm_inc(file->f_dentry->d_inode->i_ino); - return 0; + int ret; + + ret = shmem_mmap(file, vma); + if (ret == 0) { + vma->vm_ops = &shm_vm_ops; + shm_inc(file->f_dentry->d_inode->i_ino); + } + + return ret; } static struct file_operations shm_file_operations = { - .mmap = shm_mmap + .mmap = shm_mmap, +#ifndef CONFIG_MMU + .get_unmapped_area = shmem_get_unmapped_area, +#endif }; static struct vm_operations_struct shm_vm_ops = {