diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2004-07-02 09:22:50 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2004-07-02 09:22:50 +0000 |
commit | ad051c3e27ca6dd57dad57eb188dbcdcfab775fe (patch) | |
tree | bdee0dd43c6d75dcff037de88d3e3679a0ab34f7 /kernel/dir.c | |
parent | 65cf7c7deb7a98dc31beb39db3c1ae1cba45b69f (diff) | |
download | libfuse-ad051c3e27ca6dd57dad57eb188dbcdcfab775fe.tar.gz |
direct IO + fixes
Diffstat (limited to 'kernel/dir.c')
-rw-r--r-- | kernel/dir.c | 11 |
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) |