mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 04:06:22 +00:00
[PATCH] NFS: Cache invalidation fixup
If someone has renamed a directory on the server, triggering the d_move code in d_materialise_unique(), then we need to invalidate the cached directory information in the source parent directory. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Miklos Szeredi <miklos@szeredi.hu> Cc: Maneesh Soni <maneesh@in.ibm.com> Cc: Dipankar Sarma <dipankar@in.ibm.com> Cc: Neil Brown <neilb@cse.unsw.edu.au> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
9eaef27b36
commit
fc22617e45
1 changed files with 6 additions and 0 deletions
|
@ -936,8 +936,14 @@ static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, stru
|
|||
no_entry:
|
||||
res = d_materialise_unique(dentry, inode);
|
||||
if (res != NULL) {
|
||||
struct dentry *parent;
|
||||
if (IS_ERR(res))
|
||||
goto out_unlock;
|
||||
/* Was a directory renamed! */
|
||||
parent = dget_parent(res);
|
||||
if (!IS_ROOT(parent))
|
||||
nfs_mark_for_revalidate(parent->d_inode);
|
||||
dput(parent);
|
||||
dentry = res;
|
||||
}
|
||||
nfs_renew_times(dentry);
|
||||
|
|
Loading…
Reference in a new issue