Просмотр исходного кода

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>
Miklos Szeredi 15 лет назад
Родитель
Сommit
5219f346b0
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      fs/fuse/dir.c

+ 3 - 1
fs/fuse/dir.c

@@ -712,8 +712,10 @@ static int fuse_rename(struct inode *olddir, struct dentry *oldent,
 			fuse_invalidate_attr(newdir);
 			fuse_invalidate_attr(newdir);
 
 
 		/* newent will end up negative */
 		/* newent will end up negative */
-		if (newent->d_inode)
+		if (newent->d_inode) {
+			fuse_invalidate_attr(newent->d_inode);
 			fuse_invalidate_entry_cache(newent);
 			fuse_invalidate_entry_cache(newent);
+		}
 	} else if (err == -EINTR) {
 	} else if (err == -EINTR) {
 		/* If request was interrupted, DEITY only knows if the
 		/* If request was interrupted, DEITY only knows if the
 		   rename actually took place.  If the invalidation
 		   rename actually took place.  If the invalidation