projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] fix memory corruption from misinterpreted bad_inode_ops return values
[powerpc.git]
/
mm
/
nommu.c
diff --git
a/mm/nommu.c
b/mm/nommu.c
index
af87456
..
23fb033
100644
(file)
--- a/
mm/nommu.c
+++ b/
mm/nommu.c
@@
-523,7
+523,7
@@
static int validate_mmap_request(struct file *file,
*/
mapping = file->f_mapping;
if (!mapping)
*/
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)
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 */
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;
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;
!(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;
(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))
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 */
/* handle executable mappings and implied executable
* mappings */
- if (file->f_
vfs
mnt->mnt_flags & MNT_NOEXEC) {
+ if (file->f_
path.
mnt->mnt_flags & MNT_NOEXEC) {
if (prot & PROT_EXEC)
return -EPERM;
}
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 */
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)
continue;
if (vma->vm_pgoff >= pgoff + pglen)