diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-18 19:02:17 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-18 19:02:17 +0200 |
commit | 20fb1936dee63fe397236d4ff3fd253a62b7b0b8 (patch) | |
tree | bbabde4f08ec8388549083df426fdcc6ffd2f82a /fs/fuse | |
parent | Merge tag 'md-3.6-fixes' of git://neil.brown.name/md (diff) | |
parent | vfs: fix propagation of atomic_open create error on negative dentry (diff) | |
download | linux-20fb1936dee63fe397236d4ff3fd253a62b7b0b8.tar.xz linux-20fb1936dee63fe397236d4ff3fd253a62b7b0b8.zip |
Merge branch 'vfs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs
Pull vfs fixes from Miklos Szeredi.
This mainly fixes some confusion about whether the open 'mode' variable
passed around should contain the full file type (S_IFREG etc)
information or just the permission mode. In particular, the lack of
proper file type information had confused fuse.
* 'vfs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
vfs: fix propagation of atomic_open create error on negative dentry
fuse: check create mode in atomic open
vfs: pass right create mode to may_o_create()
vfs: atomic_open(): fix create mode usage
vfs: canonicalize create mode in build_open_flags()
Diffstat (limited to 'fs/fuse')
-rw-r--r-- | fs/fuse/dir.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 8964cf3999b2..324bc0850534 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -383,6 +383,9 @@ static int fuse_create_open(struct inode *dir, struct dentry *entry, struct fuse_entry_out outentry; struct fuse_file *ff; + /* Userspace expects S_IFREG in create mode */ + BUG_ON((mode & S_IFMT) != S_IFREG); + forget = fuse_alloc_forget(); err = -ENOMEM; if (!forget) |