aboutsummaryrefslogtreecommitdiff
path: root/kernel/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/dir.c')
-rw-r--r--kernel/dir.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/dir.c b/kernel/dir.c
index af41ab5..aa31295 100644
--- a/kernel/dir.c
+++ b/kernel/dir.c
@@ -182,8 +182,10 @@ static int fuse_lookup_iget(struct inode *dir, struct dentry *entry,
if (err && err != -ENOENT)
return err;
- entry->d_time = time_to_jiffies(outarg.entry_valid,
- outarg.entry_valid_nsec);
+ if (inode)
+ entry->d_time = time_to_jiffies(outarg.entry_valid,
+ outarg.entry_valid_nsec);
+
entry->d_op = &fuse_dentry_operations;
*inodep = inode;
return 0;
@@ -210,6 +212,9 @@ static int lookup_new_entry(struct fuse_conn *fc, struct fuse_req *req,
return -EINVAL;
}
+ entry->d_time = time_to_jiffies(outarg->entry_valid,
+ outarg->entry_valid_nsec);
+
d_instantiate(entry, inode);
return 0;
}
@@ -847,7 +852,7 @@ static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry)
static int fuse_mknod(struct inode *dir, struct dentry *entry, int mode,
int rdev)
{
- return fuse_mknod(dir, entry, mode, rdev);
+ return _fuse_mknod(dir, entry, mode, rdev);
}
static int fuse_dentry_revalidate(struct dentry *entry, int flags)