diff options
Diffstat (limited to 'kernel/file.c')
-rw-r--r-- | kernel/file.c | 8 |
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; |