tag | line | file | source code |
area | 24 | fs/nfs/mmap.c | extern int share_page(struct vm_area_struct * area, struct task_struct * tsk, |
area | 31 | fs/nfs/mmap.c | static void nfs_file_mmap_nopage(int error_code, struct vm_area_struct * area, |
area | 34 | fs/nfs/mmap.c | extern void file_mmap_free(struct vm_area_struct * area); |
area | 84 | fs/nfs/mmap.c | static void nfs_file_mmap_nopage(int error_code, struct vm_area_struct * area, |
area | 87 | fs/nfs/mmap.c | struct inode * inode = area->vm_inode; |
area | 97 | fs/nfs/mmap.c | pos = address - area->vm_start + area->vm_offset; |
area | 100 | fs/nfs/mmap.c | if (share_page(area, area->vm_task, inode, address, error_code, page)) { |
area | 101 | fs/nfs/mmap.c | ++area->vm_task->min_flt; |
area | 105 | fs/nfs/mmap.c | ++area->vm_task->maj_flt; |
area | 108 | fs/nfs/mmap.c | put_page(area->vm_task, BAD_PAGE, address, PAGE_PRIVATE); |
area | 113 | fs/nfs/mmap.c | if (address + PAGE_SIZE > area->vm_end) { |
area | 114 | fs/nfs/mmap.c | clear = address + PAGE_SIZE - area->vm_end; |
area | 141 | fs/nfs/mmap.c | if (share_page(area, area->vm_task, inode, address, error_code, page)) |
area | 149 | fs/nfs/mmap.c | if (put_page(area->vm_task,page,address,area->vm_page_prot)) |
area | 42 | include/linux/mm.h | void (*open)(struct vm_area_struct * area); |
area | 43 | include/linux/mm.h | void (*close)(struct vm_area_struct * area); |
area | 45 | include/linux/mm.h | struct vm_area_struct * area, unsigned long address); |
area | 46 | include/linux/mm.h | void (*wppage)(struct vm_area_struct * area, unsigned long address); |
area | 757 | mm/memory.c | int share_page(struct vm_area_struct * area, struct task_struct * tsk, |
area | 763 | mm/memory.c | if (!inode || inode->i_count < 2 || !area->vm_ops) |
area | 771 | mm/memory.c | if(!area) continue; |
area | 774 | mm/memory.c | if(area){ |
area | 777 | mm/memory.c | if (mpnt->vm_ops == area->vm_ops && |
area | 778 | mm/memory.c | mpnt->vm_inode->i_ino == area->vm_inode->i_ino&& |
area | 779 | mm/memory.c | mpnt->vm_inode->i_dev == area->vm_inode->i_dev){ |
area | 780 | mm/memory.c | if (mpnt->vm_ops->share(mpnt, area, address)) |
area | 1123 | mm/memory.c | void file_mmap_nopage(int error_code, struct vm_area_struct * area, unsigned long address) |
area | 1125 | mm/memory.c | struct inode * inode = area->vm_inode; |
area | 1132 | mm/memory.c | int prot = area->vm_page_prot; /* prot for buffer cache.. */ |
area | 1135 | mm/memory.c | block = address - area->vm_start + area->vm_offset; |
area | 1139 | mm/memory.c | if (share_page(area, area->vm_task, inode, address, error_code, page)) { |
area | 1140 | mm/memory.c | ++area->vm_task->min_flt; |
area | 1144 | mm/memory.c | ++area->vm_task->maj_flt; |
area | 1147 | mm/memory.c | put_page(area->vm_task, BAD_PAGE, address, PAGE_PRIVATE); |
area | 1160 | mm/memory.c | if (address + PAGE_SIZE > area->vm_end) { |
area | 1161 | mm/memory.c | clear = address + PAGE_SIZE - area->vm_end; |
area | 1167 | mm/memory.c | if (share_page(area, area->vm_task, inode, address, error_code, page)) |
area | 1175 | mm/memory.c | if (put_page(area->vm_task,page,address,area->vm_page_prot)) |
area | 1181 | mm/memory.c | void file_mmap_free(struct vm_area_struct * area) |
area | 1183 | mm/memory.c | if (area->vm_inode) |
area | 1184 | mm/memory.c | iput(area->vm_inode); |
area | 1186 | mm/memory.c | if (area->vm_inode) |
area | 1187 | mm/memory.c | printk("Free inode %x:%d (%d)\n",area->vm_inode->i_dev, |
area | 1188 | mm/memory.c | area->vm_inode->i_ino, area->vm_inode->i_count); |