projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vfs: canonicalize create mode in build_open_flags()
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
fs
/
open.c
diff --git
a/fs/open.c
b/fs/open.c
index
f3d96e7
..
e1f2cdb
100644
(file)
--- a/
fs/open.c
+++ b/
fs/open.c
@@
-717,7
+717,7
@@
cleanup_all:
* here, so just reset the state.
*/
file_reset_write(f);
* here, so just reset the state.
*/
file_reset_write(f);
- mnt_drop_write(f->f_path.mnt);
+
__
mnt_drop_write(f->f_path.mnt);
}
}
cleanup_file:
}
}
cleanup_file:
@@
-852,9
+852,10
@@
static inline int build_open_flags(int flags, umode_t mode, struct open_flags *o
int lookup_flags = 0;
int acc_mode;
int lookup_flags = 0;
int acc_mode;
- if (!(flags & O_CREAT))
- mode = 0;
- op->mode = mode;
+ if (flags & O_CREAT)
+ op->mode = (mode & S_IALLUGO) | S_IFREG;
+ else
+ op->mode = 0;
/* Must never be set by userspace */
flags &= ~FMODE_NONOTIFY;
/* Must never be set by userspace */
flags &= ~FMODE_NONOTIFY;