+ if (np->n_xid == 0) {
+ FSDBG(528, vp, 0, 0, 0);
+ nfsstats.attrcache_misses++;
+ return (ENOENT);
+ }
+
+ /* Set attribute timeout based on how recently the file has been modified. */
+ if ((np)->n_flag & NMODIFIED)
+ timeo = NFS_MINATTRTIMO;
+ else {
+ /* Note that if the client and server clocks are way out of sync, */
+ /* timeout will probably get clamped to a min or max value */
+ microtime(&now);
+ timeo = (now.tv_sec - (np)->n_mtime) / 10;
+ if (timeo < NFS_MINATTRTIMO)
+ timeo = NFS_MINATTRTIMO;
+ else if (timeo > NFS_MAXATTRTIMO)
+ timeo = NFS_MAXATTRTIMO;
+ }
+
+ microuptime(&nowup);
+ if ((nowup.tv_sec - np->n_attrstamp) >= timeo) {