aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fuse/inode.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2006-01-06 00:19:43 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-06 08:33:56 -0800
commit39ee059affaf57a152c64cd3a0adc3f48f02ed71 (patch)
treed656f8b3eb40cd1019a82d4381bbfa33e6caec8e /fs/fuse/inode.c
parent6ad84acab972f4dfc78e6fdb04c419f82c497d29 (diff)
downloadkernel_samsung_aries-39ee059affaf57a152c64cd3a0adc3f48f02ed71.zip
kernel_samsung_aries-39ee059affaf57a152c64cd3a0adc3f48f02ed71.tar.gz
kernel_samsung_aries-39ee059affaf57a152c64cd3a0adc3f48f02ed71.tar.bz2
[PATCH] fuse: check file type in lookup
Previously invalid types were quietly changed to regular files, but at revalidation the inode was changed to bad. This was rather inconsistent behavior. Now check if the type is valid on initial lookup, and return -EIO if not. Signed-off-by: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/fuse/inode.c')
-rw-r--r--fs/fuse/inode.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index e454186..04c80cc 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -135,12 +135,8 @@ static void fuse_init_inode(struct inode *inode, struct fuse_attr *attr)
fuse_init_common(inode);
init_special_inode(inode, inode->i_mode,
new_decode_dev(attr->rdev));
- } else {
- /* Don't let user create weird files */
- inode->i_mode = S_IFREG;
- fuse_init_common(inode);
- fuse_init_file_inode(inode);
- }
+ } else
+ BUG();
}
static int fuse_inode_eq(struct inode *inode, void *_nodeidp)