diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2016-08-03 12:55:49 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2016-08-03 12:55:49 +0200 |
commit | 4a89cf810130fde41e3fc729e770cb1a5a87d245 (patch) | |
tree | 84da40f8d26e51c21e61fc4fc5b7242c0050ae7d /fs/ecryptfs/file.c | |
parent | 4f53989b0652ffe2605221c81ca8ffcfc90aed2a (diff) | |
parent | e9cbf6299e306d6f2ff7b8fe7ac66059191b182f (diff) |
Merge branch '4.7-fixes' into mips-for-linux-next
Diffstat (limited to 'fs/ecryptfs/file.c')
-rw-r--r-- | fs/ecryptfs/file.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c index 7000b96b783e..ca4e83750214 100644 --- a/fs/ecryptfs/file.c +++ b/fs/ecryptfs/file.c @@ -169,9 +169,22 @@ out: return rc; } +static int ecryptfs_mmap(struct file *file, struct vm_area_struct *vma) +{ + struct file *lower_file = ecryptfs_file_to_lower(file); + /* + * Don't allow mmap on top of file systems that don't support it + * natively. If FILESYSTEM_MAX_STACK_DEPTH > 2 or ecryptfs + * allows recursive mounting, this will need to be extended. + */ + if (!lower_file->f_op->mmap) + return -ENODEV; + return generic_file_mmap(file, vma); +} + /** * ecryptfs_open - * @inode: inode speciying file to open + * @inode: inode specifying file to open * @file: Structure to return filled in * * Opens the file specified by inode. @@ -240,7 +253,7 @@ out: /** * ecryptfs_dir_open - * @inode: inode speciying file to open + * @inode: inode specifying file to open * @file: Structure to return filled in * * Opens the file specified by inode. @@ -403,7 +416,7 @@ const struct file_operations ecryptfs_main_fops = { #ifdef CONFIG_COMPAT .compat_ioctl = ecryptfs_compat_ioctl, #endif - .mmap = generic_file_mmap, + .mmap = ecryptfs_mmap, .open = ecryptfs_open, .flush = ecryptfs_flush, .release = ecryptfs_release, |