diff options
| -rw-r--r-- | fs/ramfs/file-nommu.c | 2 | ||||
| -rw-r--r-- | include/linux/ramfs.h | 1 | ||||
| -rw-r--r-- | mm/tiny-shmem.c | 6 |
3 files changed, 8 insertions, 1 deletions
diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c index 52312ec93ff4..5145cb9125af 100644 --- a/fs/ramfs/file-nommu.c +++ b/fs/ramfs/file-nommu.c | |||
| @@ -58,7 +58,7 @@ const struct inode_operations ramfs_file_inode_operations = { | |||
| 58 | * size 0 on the assumption that it's going to be used for an mmap of shared | 58 | * size 0 on the assumption that it's going to be used for an mmap of shared |
| 59 | * memory | 59 | * memory |
| 60 | */ | 60 | */ |
| 61 | static int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize) | 61 | int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize) |
| 62 | { | 62 | { |
| 63 | struct pagevec lru_pvec; | 63 | struct pagevec lru_pvec; |
| 64 | unsigned long npages, xpages, loop, limit; | 64 | unsigned long npages, xpages, loop, limit; |
diff --git a/include/linux/ramfs.h b/include/linux/ramfs.h index b160fb18e8d6..37aaf2b39863 100644 --- a/include/linux/ramfs.h +++ b/include/linux/ramfs.h | |||
| @@ -6,6 +6,7 @@ extern int ramfs_get_sb(struct file_system_type *fs_type, | |||
| 6 | int flags, const char *dev_name, void *data, struct vfsmount *mnt); | 6 | int flags, const char *dev_name, void *data, struct vfsmount *mnt); |
| 7 | 7 | ||
| 8 | #ifndef CONFIG_MMU | 8 | #ifndef CONFIG_MMU |
| 9 | extern int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize); | ||
| 9 | extern unsigned long ramfs_nommu_get_unmapped_area(struct file *file, | 10 | extern unsigned long ramfs_nommu_get_unmapped_area(struct file *file, |
| 10 | unsigned long addr, | 11 | unsigned long addr, |
| 11 | unsigned long len, | 12 | unsigned long len, |
diff --git a/mm/tiny-shmem.c b/mm/tiny-shmem.c index d17cb6f6ab10..8d7a27a6335c 100644 --- a/mm/tiny-shmem.c +++ b/mm/tiny-shmem.c | |||
| @@ -80,6 +80,12 @@ struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) | |||
| 80 | inode->i_nlink = 0; /* It is unlinked */ | 80 | inode->i_nlink = 0; /* It is unlinked */ |
| 81 | init_file(file, shm_mnt, dentry, FMODE_WRITE | FMODE_READ, | 81 | init_file(file, shm_mnt, dentry, FMODE_WRITE | FMODE_READ, |
| 82 | &ramfs_file_operations); | 82 | &ramfs_file_operations); |
| 83 | |||
| 84 | #ifndef CONFIG_MMU | ||
| 85 | error = ramfs_nommu_expand_for_mapping(inode, size); | ||
| 86 | if (error) | ||
| 87 | goto close_file; | ||
| 88 | #endif | ||
| 83 | return file; | 89 | return file; |
| 84 | 90 | ||
| 85 | close_file: | 91 | close_file: |
