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 --- |