shmem.c (4f98a2fee8acdb4ac84545df98cccecfd130f8db) shmem.c (89e004ea55abe201b29e2d6e35124101f1288ef7)
1/*
2 * Resizable virtual memory filesystem for Linux.
3 *
4 * Copyright (C) 2000 Linus Torvalds.
5 * 2000 Transmeta Corp.
6 * 2000-2001 Christoph Rohland
7 * 2000-2001 SAP AG
8 * 2002 Red Hat Inc.

--- 1463 unchanged lines hidden (view full) ---

1472 struct shmem_inode_info *info = SHMEM_I(inode);
1473 int retval = -ENOMEM;
1474
1475 spin_lock(&info->lock);
1476 if (lock && !(info->flags & VM_LOCKED)) {
1477 if (!user_shm_lock(inode->i_size, user))
1478 goto out_nomem;
1479 info->flags |= VM_LOCKED;
1/*
2 * Resizable virtual memory filesystem for Linux.
3 *
4 * Copyright (C) 2000 Linus Torvalds.
5 * 2000 Transmeta Corp.
6 * 2000-2001 Christoph Rohland
7 * 2000-2001 SAP AG
8 * 2002 Red Hat Inc.

--- 1463 unchanged lines hidden (view full) ---

1472 struct shmem_inode_info *info = SHMEM_I(inode);
1473 int retval = -ENOMEM;
1474
1475 spin_lock(&info->lock);
1476 if (lock && !(info->flags & VM_LOCKED)) {
1477 if (!user_shm_lock(inode->i_size, user))
1478 goto out_nomem;
1479 info->flags |= VM_LOCKED;
1480 mapping_set_unevictable(file->f_mapping);
1480 }
1481 if (!lock && (info->flags & VM_LOCKED) && user) {
1482 user_shm_unlock(inode->i_size, user);
1483 info->flags &= ~VM_LOCKED;
1481 }
1482 if (!lock && (info->flags & VM_LOCKED) && user) {
1483 user_shm_unlock(inode->i_size, user);
1484 info->flags &= ~VM_LOCKED;
1485 mapping_clear_unevictable(file->f_mapping);
1486 scan_mapping_unevictable_pages(file->f_mapping);
1484 }
1485 retval = 0;
1487 }
1488 retval = 0;
1489
1486out_nomem:
1487 spin_unlock(&info->lock);
1488 return retval;
1489}
1490
1491static int shmem_mmap(struct file *file, struct vm_area_struct *vma)
1492{
1493 file_accessed(file);

--- 1111 unchanged lines hidden ---
1490out_nomem:
1491 spin_unlock(&info->lock);
1492 return retval;
1493}
1494
1495static int shmem_mmap(struct file *file, struct vm_area_struct *vma)
1496{
1497 file_accessed(file);

--- 1111 unchanged lines hidden ---