diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-09 09:12:53 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-09 09:12:53 -0700 |
commit | 11fbf53d66ec302fe50b06bd7cb4863dbb98775a (patch) | |
tree | 1e7f8fdb574313b9c1403d2f89386a461c9b2eaa /fs/open.c | |
parent | 339fbf6796f8e74544091adbf511286768eaf93e (diff) | |
parent | 6b4657667ba06cd2e07206c65e630acdf248bfd1 (diff) | |
download | linux-stable-11fbf53d66ec302fe50b06bd7cb4863dbb98775a.tar.gz linux-stable-11fbf53d66ec302fe50b06bd7cb4863dbb98775a.tar.bz2 linux-stable-11fbf53d66ec302fe50b06bd7cb4863dbb98775a.zip |
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull misc vfs updates from Al Viro:
"Assorted bits and pieces from various people. No common topic in this
pile, sorry"
* 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
fs/affs: add rename exchange
fs/affs: add rename2 to prepare multiple methods
Make stat/lstat/fstatat pass AT_NO_AUTOMOUNT to vfs_statx()
fs: don't set *REFERENCED on single use objects
fs: compat: Remove warning from COMPATIBLE_IOCTL
remove pointless extern of atime_need_update_rcu()
fs: completely ignore unknown open flags
fs: add a VALID_OPEN_FLAGS
fs: remove _submit_bh()
fs: constify tree_descr arrays passed to simple_fill_super()
fs: drop duplicate header percpu-rwsem.h
fs/affs: bugfix: Write files greater than page size on OFS
fs/affs: bugfix: enable writes on OFS disks
fs/affs: remove node generation check
fs/affs: import amigaffs.h
fs/affs: bugfix: make symbolic links work again
Diffstat (limited to 'fs/open.c')
-rw-r--r-- | fs/open.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/open.c b/fs/open.c index 4d23f729dcc6..373787afd638 100644 --- a/fs/open.c +++ b/fs/open.c @@ -900,6 +900,12 @@ static inline int build_open_flags(int flags, umode_t mode, struct open_flags *o int lookup_flags = 0; int acc_mode = ACC_MODE(flags); + /* + * Clear out all open flags we don't know about so that we don't report + * them in fcntl(F_GETFD) or similar interfaces. + */ + flags &= VALID_OPEN_FLAGS; + if (flags & (O_CREAT | __O_TMPFILE)) op->mode = (mode & S_IALLUGO) | S_IFREG; else |