X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/527f99514973766e9c0382a4d8550dfb00f54939..d9a64523371fa019c4575bb400cbbc3a50ac9903:/bsd/nfs/nfs_subs.c diff --git a/bsd/nfs/nfs_subs.c b/bsd/nfs/nfs_subs.c index ff5ae70b6..0702fbed9 100644 --- a/bsd/nfs/nfs_subs.c +++ b/bsd/nfs/nfs_subs.c @@ -1688,8 +1688,15 @@ nfs_getattrcache(nfsnode_t np, struct nfs_vattr *nvaper, int flags) * and return cached attributes. */ if (!nfs_use_cache(nmp)) { - timeo = nfs_attrcachetimeout(np); microuptime(&nowup); + if (np->n_attrstamp > nowup.tv_sec) { + printf("NFS: Attribute time stamp is in the future by %ld seconds. Invalidating cache\n", + np->n_attrstamp - nowup.tv_sec); + NATTRINVALIDATE(np); + NACCESSINVALIDATE(np); + return (ENOENT); + } + timeo = nfs_attrcachetimeout(np); if ((nowup.tv_sec - np->n_attrstamp) >= timeo) { FSDBG(528, np, 0, 0xffffff02, ENOENT); OSAddAtomic64(1, &nfsstats.attrcache_misses);