diff -Nru linux-2.6.36-rc3-orig/fs/nfs/super.c linux-2.6.36-rc3-new/fs/nfs/super.c --- linux-2.6.36-rc3-orig/fs/nfs/super.c 2010-08-29 17:36:04.000000000 +0200 +++ linux-2.6.36-rc3-new/fs/nfs/super.c 2010-09-08 11:33:03.078684569 +0200 @@ -431,7 +431,15 @@ goto out_err; error = server->nfs_client->rpc_ops->statfs(server, fh, &res); + if (unlikely(error == -ESTALE)) { + struct dentry *pd_dentry; + + if ((pd_dentry = dget_parent(dentry)) != NULL) { + nfs_zap_caches(pd_dentry->d_inode); + dput(pd_dentry); + } + } nfs_free_fattr(res.fattr); if (error < 0) goto out_err;