summaryrefslogtreecommitdiff
path: root/fs/fuse/dir.c
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2009-11-04 10:24:52 +0100
committerMiklos Szeredi <mszeredi@suse.cz>2009-11-04 10:24:52 +0100
commit5219f346b0ea2a2a8821f1e966b190788c285b0b (patch)
tree61063605b09431b84a8dbbee81d1e4fc59712f48 /fs/fuse/dir.c
parent0bd87182d3ab18a32a8e9175d3f68754c58e3432 (diff)
downloadlwn-5219f346b0ea2a2a8821f1e966b190788c285b0b.tar.gz
lwn-5219f346b0ea2a2a8821f1e966b190788c285b0b.zip
fuse: invalidate target of rename
Invalidate the target's attributes, which may have changed (such as nlink, change time) so that they are refreshed on the next getattr(). Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'fs/fuse/dir.c')
-rw-r--r--fs/fuse/dir.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index 992f6c9410bb..8ada78aade58 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -712,8 +712,10 @@ static int fuse_rename(struct inode *olddir, struct dentry *oldent,
fuse_invalidate_attr(newdir);
/* newent will end up negative */
- if (newent->d_inode)
+ if (newent->d_inode) {
+ fuse_invalidate_attr(newent->d_inode);
fuse_invalidate_entry_cache(newent);
+ }
} else if (err == -EINTR) {
/* If request was interrupted, DEITY only knows if the
rename actually took place. If the invalidation