diff --git a/[refs] b/[refs] index b487f6a15a9b..830fdaefb2d0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b20d37ca9561711c6a3c4b859c2855f49565e061 +refs/heads/master: fbf3fdd2443965d9ba6fb4b5fecd1f6e0847218f diff --git a/trunk/fs/nfs/super.c b/trunk/fs/nfs/super.c index ec3966e4706b..f4cbf0c306c6 100644 --- a/trunk/fs/nfs/super.c +++ b/trunk/fs/nfs/super.c @@ -431,7 +431,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;