]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - fs/nfs/super.c
Merge branch 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
[net-next-2.6.git] / fs / nfs / super.c
index 50ed035cabc41e04e3a418ee8c110038b0d085f1..3600ec700d583356d7e765db1c3a7035d3b2355c 100644 (file)
@@ -449,7 +449,15 @@ static int nfs_statfs(struct dentry *dentry, struct kstatfs *buf)
                goto out_err;
 
        error = server->nfs_client->rpc_ops->statfs(server, fh, &res);
+       if (unlikely(error == -ESTALE)) {
+               struct dentry *pd_dentry;
 
+               pd_dentry = dget_parent(dentry);
+               if (pd_dentry != NULL) {
+                       nfs_zap_caches(pd_dentry->d_inode);
+                       dput(pd_dentry);
+               }
+       }
        nfs_free_fattr(res.fattr);
        if (error < 0)
                goto out_err;