aboutsummaryrefslogtreecommitdiff
path: root/fs/fuse/dir.c
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2013-07-17 14:53:53 +0200
committerMiklos Szeredi <mszeredi@suse.cz>2013-07-17 14:53:53 +0200
commitfa2b7213600f8110ebac64acebc78a885b0594a0 (patch)
treeb72c3cc5f0af67623da13454a1c500fc60404b4b /fs/fuse/dir.c
parent2914941e3178d84a216fc4eb85292dfef3b6d628 (diff)
fuse: readdirplus: change attributes once
If we got the inode through fuse_iget() then the attributes are already up-to-date. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'fs/fuse/dir.c')
-rw-r--r--fs/fuse/dir.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index 5dfbb5439e4..37d85e05b1f 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1252,6 +1252,10 @@ static int fuse_direntplus_link(struct file *file,
fi->nlookup++;
spin_unlock(&fc->lock);
+ fuse_change_attributes(inode, &o->attr,
+ entry_attr_timeout(o),
+ attr_version);
+
/*
* The other branch to 'found' comes via fuse_iget()
* which bumps nlookup inside
@@ -1291,9 +1295,6 @@ static int fuse_direntplus_link(struct file *file,
}
found:
- fuse_change_attributes(inode, &o->attr, entry_attr_timeout(o),
- attr_version);
-
fuse_change_entry_timeout(dentry, o);
err = 0;