From ad051c3e27ca6dd57dad57eb188dbcdcfab775fe Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Fri, 2 Jul 2004 09:22:50 +0000 Subject: direct IO + fixes --- kernel/dir.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'kernel/dir.c') 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) -- cgit v1.2.3