aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/file.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2001-12-20 15:38:05 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2001-12-20 15:38:05 +0000
commitfe25def3344095825738deba119e1400b8e2315f (patch)
treea277304923d54e0495558c1e4e6720c2c114d78d /kernel/file.c
parent2e50d4376f3124a87d5723ae66c09fa71c7ecf88 (diff)
downloadlibfuse-fe25def3344095825738deba119e1400b8e2315f.tar.gz
permission checking implemented
Diffstat (limited to 'kernel/file.c')
-rw-r--r--kernel/file.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/file.c b/kernel/file.c
index b7cb2f4..0622e51 100644
--- a/kernel/file.c
+++ b/kernel/file.c
@@ -17,6 +17,14 @@ static int fuse_open(struct inode *inode, struct file *file)
struct fuse_out out = FUSE_OUT_INIT;
struct fuse_open_in inarg;
+ /* If opening the root node, no lookup has been performed on
+ it, so the attributes must be refreshed */
+ if(inode->i_ino == FUSE_ROOT_INO) {
+ int err = fuse_getattr(inode);
+ if(err)
+ return err;
+ }
+
memset(&inarg, 0, sizeof(inarg));
inarg.flags = file->f_flags & ~O_EXCL;