diff options
| -rw-r--r-- | fs/nfs/dir.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 27b5a1051b1c..b34cd16f472f 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
| @@ -936,8 +936,14 @@ static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, stru | |||
| 936 | no_entry: | 936 | no_entry: |
| 937 | res = d_materialise_unique(dentry, inode); | 937 | res = d_materialise_unique(dentry, inode); |
| 938 | if (res != NULL) { | 938 | if (res != NULL) { |
| 939 | struct dentry *parent; | ||
| 939 | if (IS_ERR(res)) | 940 | if (IS_ERR(res)) |
| 940 | goto out_unlock; | 941 | goto out_unlock; |
| 942 | /* Was a directory renamed! */ | ||
| 943 | parent = dget_parent(res); | ||
| 944 | if (!IS_ROOT(parent)) | ||
| 945 | nfs_mark_for_revalidate(parent->d_inode); | ||
| 946 | dput(parent); | ||
| 941 | dentry = res; | 947 | dentry = res; |
| 942 | } | 948 | } |
| 943 | nfs_renew_times(dentry); | 949 | nfs_renew_times(dentry); |
