aboutsummaryrefslogtreecommitdiffstats
path: root/ipc/shm.c
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/shm.c')
-rw-r--r--ipc/shm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ipc/shm.c b/ipc/shm.c
index 242c3f66493a..d0259e3ad1c0 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -224,13 +224,12 @@ static void shm_close(struct vm_area_struct *vma)
224 mutex_unlock(&shm_ids(ns).mutex); 224 mutex_unlock(&shm_ids(ns).mutex);
225} 225}
226 226
227static struct page *shm_nopage(struct vm_area_struct *vma, 227static int shm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
228 unsigned long address, int *type)
229{ 228{
230 struct file *file = vma->vm_file; 229 struct file *file = vma->vm_file;
231 struct shm_file_data *sfd = shm_file_data(file); 230 struct shm_file_data *sfd = shm_file_data(file);
232 231
233 return sfd->vm_ops->nopage(vma, address, type); 232 return sfd->vm_ops->fault(vma, vmf);
234} 233}
235 234
236#ifdef CONFIG_NUMA 235#ifdef CONFIG_NUMA
@@ -269,6 +268,7 @@ static int shm_mmap(struct file * file, struct vm_area_struct * vma)
269 if (ret != 0) 268 if (ret != 0)
270 return ret; 269 return ret;
271 sfd->vm_ops = vma->vm_ops; 270 sfd->vm_ops = vma->vm_ops;
271 BUG_ON(!sfd->vm_ops->fault);
272 vma->vm_ops = &shm_vm_ops; 272 vma->vm_ops = &shm_vm_ops;
273 shm_open(vma); 273 shm_open(vma);
274 274
@@ -327,7 +327,7 @@ static const struct file_operations shm_file_operations = {
327static struct vm_operations_struct shm_vm_ops = { 327static struct vm_operations_struct shm_vm_ops = {
328 .open = shm_open, /* callback for a new vm-area open */ 328 .open = shm_open, /* callback for a new vm-area open */
329 .close = shm_close, /* callback for when the vm-area is released */ 329 .close = shm_close, /* callback for when the vm-area is released */
330 .nopage = shm_nopage, 330 .fault = shm_fault,
331#if defined(CONFIG_NUMA) 331#if defined(CONFIG_NUMA)
332 .set_policy = shm_set_policy, 332 .set_policy = shm_set_policy,
333 .get_policy = shm_get_policy, 333 .get_policy = shm_get_policy,