aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/dir.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-07-02 09:22:50 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-07-02 09:22:50 +0000
commitad051c3e27ca6dd57dad57eb188dbcdcfab775fe (patch)
treebdee0dd43c6d75dcff037de88d3e3679a0ab34f7 /kernel/dir.c
parent65cf7c7deb7a98dc31beb39db3c1ae1cba45b69f (diff)
downloadlibfuse-ad051c3e27ca6dd57dad57eb188dbcdcfab775fe.tar.gz
direct IO + fixes
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)