diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2009-11-04 04:24:52 -0500 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2009-11-04 04:24:52 -0500 |
commit | 5219f346b0ea2a2a8821f1e966b190788c285b0b (patch) | |
tree | 61063605b09431b84a8dbbee81d1e4fc59712f48 /fs/fuse | |
parent | 0bd87182d3ab18a32a8e9175d3f68754c58e3432 (diff) |
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')
-rw-r--r-- | fs/fuse/dir.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 992f6c9410b..8ada78aade5 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, | |||
712 | fuse_invalidate_attr(newdir); | 712 | fuse_invalidate_attr(newdir); |
713 | 713 | ||
714 | /* newent will end up negative */ | 714 | /* newent will end up negative */ |
715 | if (newent->d_inode) | 715 | if (newent->d_inode) { |
716 | fuse_invalidate_attr(newent->d_inode); | ||
716 | fuse_invalidate_entry_cache(newent); | 717 | fuse_invalidate_entry_cache(newent); |
718 | } | ||
717 | } else if (err == -EINTR) { | 719 | } else if (err == -EINTR) { |
718 | /* If request was interrupted, DEITY only knows if the | 720 | /* If request was interrupted, DEITY only knows if the |
719 | rename actually took place. If the invalidation | 721 | rename actually took place. If the invalidation |