summaryrefslogtreecommitdiffstats
path: root/fs/open.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-07-20 01:11:32 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2013-07-20 01:11:32 +0200
commitba57ea64cb1820deb37637de0fdb107f0dc90089 (patch)
treedd8d302d4f16107e87b555aca3630ada6fcd472a /fs/open.c
parentlinked-list: Remove __list_for_each (diff)
downloadlinux-ba57ea64cb1820deb37637de0fdb107f0dc90089.tar.xz
linux-ba57ea64cb1820deb37637de0fdb107f0dc90089.zip
allow O_TMPFILE to work with O_WRONLY
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/open.c')
-rw-r--r--fs/open.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/open.c b/fs/open.c
index 9156cb050d08..d53e29895082 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -844,6 +844,8 @@ static inline int build_open_flags(int flags, umode_t mode, struct open_flags *o
if ((flags & O_TMPFILE_MASK) != O_TMPFILE)
return -EINVAL;
acc_mode = MAY_OPEN | ACC_MODE(flags);
+ if (!(acc_mode & MAY_WRITE))
+ return -EINVAL;
} else if (flags & O_PATH) {
/*
* If we have O_PATH in the open flag. Then we