Commit e305f48b authored by Andy Lutomirski's avatar Andy Lutomirski Committed by Al Viro

fs: Fix file mode for O_TMPFILE

O_TMPFILE, like O_CREAT, should respect the requested mode and should
create regular files.

This fixes two bugs: O_TMPFILE required privilege (because the mode
ended up as 000) and it produced bogus inodes with no type.
Signed-off-by: default avatarAndy Lutomirski <luto@amacapital.net>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 672fe15d
...@@ -823,7 +823,7 @@ static inline int build_open_flags(int flags, umode_t mode, struct open_flags *o ...@@ -823,7 +823,7 @@ static inline int build_open_flags(int flags, umode_t mode, struct open_flags *o
int lookup_flags = 0; int lookup_flags = 0;
int acc_mode; int acc_mode;
if (flags & O_CREAT) if (flags & (O_CREAT | __O_TMPFILE))
op->mode = (mode & S_IALLUGO) | S_IFREG; op->mode = (mode & S_IALLUGO) | S_IFREG;
else else
op->mode = 0; op->mode = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment