aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ecryptfs/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ecryptfs/file.c')
-rw-r--r--fs/ecryptfs/file.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c
index 53d0141b9c20..ca4e83750214 100644
--- a/fs/ecryptfs/file.c
+++ b/fs/ecryptfs/file.c
@@ -169,6 +169,19 @@ out:
169 return rc; 169 return rc;
170} 170}
171 171
172static int ecryptfs_mmap(struct file *file, struct vm_area_struct *vma)
173{
174 struct file *lower_file = ecryptfs_file_to_lower(file);
175 /*
176 * Don't allow mmap on top of file systems that don't support it
177 * natively. If FILESYSTEM_MAX_STACK_DEPTH > 2 or ecryptfs
178 * allows recursive mounting, this will need to be extended.
179 */
180 if (!lower_file->f_op->mmap)
181 return -ENODEV;
182 return generic_file_mmap(file, vma);
183}
184
172/** 185/**
173 * ecryptfs_open 186 * ecryptfs_open
174 * @inode: inode specifying file to open 187 * @inode: inode specifying file to open
@@ -403,7 +416,7 @@ const struct file_operations ecryptfs_main_fops = {
403#ifdef CONFIG_COMPAT 416#ifdef CONFIG_COMPAT
404 .compat_ioctl = ecryptfs_compat_ioctl, 417 .compat_ioctl = ecryptfs_compat_ioctl,
405#endif 418#endif
406 .mmap = generic_file_mmap, 419 .mmap = ecryptfs_mmap,
407 .open = ecryptfs_open, 420 .open = ecryptfs_open,
408 .flush = ecryptfs_flush, 421 .flush = ecryptfs_flush,
409 .release = ecryptfs_release, 422 .release = ecryptfs_release,