|
@@ -523,7 +523,7 @@ static int validate_mmap_request(struct file *file,
|
|
|
*/
|
|
|
mapping = file->f_mapping;
|
|
|
if (!mapping)
|
|
|
- mapping = file->f_dentry->d_inode->i_mapping;
|
|
|
+ mapping = file->f_path.dentry->d_inode->i_mapping;
|
|
|
|
|
|
capabilities = 0;
|
|
|
if (mapping && mapping->backing_dev_info)
|
|
@@ -532,7 +532,7 @@ static int validate_mmap_request(struct file *file,
|
|
|
if (!capabilities) {
|
|
|
/* no explicit capabilities set, so assume some
|
|
|
* defaults */
|
|
|
- switch (file->f_dentry->d_inode->i_mode & S_IFMT) {
|
|
|
+ switch (file->f_path.dentry->d_inode->i_mode & S_IFMT) {
|
|
|
case S_IFREG:
|
|
|
case S_IFBLK:
|
|
|
capabilities = BDI_CAP_MAP_COPY;
|
|
@@ -563,11 +563,11 @@ static int validate_mmap_request(struct file *file,
|
|
|
!(file->f_mode & FMODE_WRITE))
|
|
|
return -EACCES;
|
|
|
|
|
|
- if (IS_APPEND(file->f_dentry->d_inode) &&
|
|
|
+ if (IS_APPEND(file->f_path.dentry->d_inode) &&
|
|
|
(file->f_mode & FMODE_WRITE))
|
|
|
return -EACCES;
|
|
|
|
|
|
- if (locks_verify_locked(file->f_dentry->d_inode))
|
|
|
+ if (locks_verify_locked(file->f_path.dentry->d_inode))
|
|
|
return -EAGAIN;
|
|
|
|
|
|
if (!(capabilities & BDI_CAP_MAP_DIRECT))
|
|
@@ -598,7 +598,7 @@ static int validate_mmap_request(struct file *file,
|
|
|
|
|
|
/* handle executable mappings and implied executable
|
|
|
* mappings */
|
|
|
- if (file->f_vfsmnt->mnt_flags & MNT_NOEXEC) {
|
|
|
+ if (file->f_path.mnt->mnt_flags & MNT_NOEXEC) {
|
|
|
if (prot & PROT_EXEC)
|
|
|
return -EPERM;
|
|
|
}
|
|
@@ -833,7 +833,7 @@ unsigned long do_mmap_pgoff(struct file *file,
|
|
|
continue;
|
|
|
|
|
|
/* search for overlapping mappings on the same file */
|
|
|
- if (vma->vm_file->f_dentry->d_inode != file->f_dentry->d_inode)
|
|
|
+ if (vma->vm_file->f_path.dentry->d_inode != file->f_path.dentry->d_inode)
|
|
|
continue;
|
|
|
|
|
|
if (vma->vm_pgoff >= pgoff + pglen)
|