summaryrefslogtreecommitdiffstats
path: root/fs/fuse/inode.c
diff options
context:
space:
mode:
authorMiklos Szeredi2006-01-06 09:19:43 +0100
committerLinus Torvalds2006-01-06 17:33:56 +0100
commit39ee059affaf57a152c64cd3a0adc3f48f02ed71 (patch)
treed656f8b3eb40cd1019a82d4381bbfa33e6caec8e /fs/fuse/inode.c
parent[PATCH] fuse: ensure progress in read and write (diff)
downloadkernel-qcow2-linux-39ee059affaf57a152c64cd3a0adc3f48f02ed71.tar.gz
kernel-qcow2-linux-39ee059affaf57a152c64cd3a0adc3f48f02ed71.tar.xz
kernel-qcow2-linux-39ee059affaf57a152c64cd3a0adc3f48f02ed71.zip
[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 e4541869831e..04c80cc957a3 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)