diff options
author | Dave Kleikamp <shaggy@austin.ibm.com> | 2006-01-24 15:34:47 -0500 |
---|---|---|
committer | Dave Kleikamp <shaggy@austin.ibm.com> | 2006-01-24 15:34:47 -0500 |
commit | 0a0fc0ddbe732779366ab6b1b879f62195e65967 (patch) | |
tree | 7b42490a676cf39ae0691b6859ecf7fd410f229b /mm/tiny-shmem.c | |
parent | 4d5dbd0945d9e0833dd7964a3d6ee33157f7cc7a (diff) | |
parent | 3ee68c4af3fd7228c1be63254b9f884614f9ebb2 (diff) |
Merge with /home/shaggy/git/linus-clean/
Diffstat (limited to 'mm/tiny-shmem.c')
-rw-r--r-- | mm/tiny-shmem.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/mm/tiny-shmem.c b/mm/tiny-shmem.c index b58abcf44ed6..f9d6a9cc91c4 100644 --- a/mm/tiny-shmem.c +++ b/mm/tiny-shmem.c | |||
@@ -81,13 +81,19 @@ struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) | |||
81 | goto close_file; | 81 | goto close_file; |
82 | 82 | ||
83 | d_instantiate(dentry, inode); | 83 | d_instantiate(dentry, inode); |
84 | inode->i_size = size; | ||
85 | inode->i_nlink = 0; /* It is unlinked */ | 84 | inode->i_nlink = 0; /* It is unlinked */ |
85 | |||
86 | file->f_vfsmnt = mntget(shm_mnt); | 86 | file->f_vfsmnt = mntget(shm_mnt); |
87 | file->f_dentry = dentry; | 87 | file->f_dentry = dentry; |
88 | file->f_mapping = inode->i_mapping; | 88 | file->f_mapping = inode->i_mapping; |
89 | file->f_op = &ramfs_file_operations; | 89 | file->f_op = &ramfs_file_operations; |
90 | file->f_mode = FMODE_WRITE | FMODE_READ; | 90 | file->f_mode = FMODE_WRITE | FMODE_READ; |
91 | |||
92 | /* notify everyone as to the change of file size */ | ||
93 | error = do_truncate(dentry, size, 0, file); | ||
94 | if (error < 0) | ||
95 | goto close_file; | ||
96 | |||
91 | return file; | 97 | return file; |
92 | 98 | ||
93 | close_file: | 99 | close_file: |
@@ -123,3 +129,24 @@ int shmem_unuse(swp_entry_t entry, struct page *page) | |||
123 | { | 129 | { |
124 | return 0; | 130 | return 0; |
125 | } | 131 | } |
132 | |||
133 | int shmem_mmap(struct file *file, struct vm_area_struct *vma) | ||
134 | { | ||
135 | file_accessed(file); | ||
136 | #ifndef CONFIG_MMU | ||
137 | return ramfs_nommu_mmap(file, vma); | ||
138 | #else | ||
139 | return 0; | ||
140 | #endif | ||
141 | } | ||
142 | |||
143 | #ifndef CONFIG_MMU | ||
144 | unsigned long shmem_get_unmapped_area(struct file *file, | ||
145 | unsigned long addr, | ||
146 | unsigned long len, | ||
147 | unsigned long pgoff, | ||
148 | unsigned long flags) | ||
149 | { | ||
150 | return ramfs_nommu_get_unmapped_area(file, addr, len, pgoff, flags); | ||
151 | } | ||
152 | #endif | ||